Comparable接口实现自定义对象的排序功能
来源:互联网 发布:缤特力升级软件 编辑:程序博客网 时间:2024/06/01 09:09
有时需要通过比较对象的某个值来将对象的数组进行排序,
可以通过自定义方法来实现,
但是使用comparable接口会很方便的实现不同属性的比较排序.
写一个Student类
// 泛型写什么 就是和什么比较public class Student implements Comparable<Student>{ private String name; private int score; public static boolean desc; // true 降序 false 升序 // 排序方式对所有对象都是保持一致 ,使用static来保持一致 // 并且也直接使用类名调用比较简单 // 所有对象独享的,定义为静态变量 // 每个对象独享的,定义为普通变量 public Student() { super(); // TODO Auto-generated constructor stub } public Student(String name, int score) { super(); this.name = name; this.score = score; } public int compareTo(Student o) { // 比较的结果返回值如下所示 // 负数 0 正数 // 负数 tihs < o // 0 this == o // 正数 this > o// if (this.score < o.score) {// return -1;// }// if (this.score == o.score) {// return 0;// }// if (this.score > o.score) {// return 1;// } // 这是一种更简便的写法 // 降序 if (Student.desc) { return o.score - this.score; }else { // 升序 return this.score - o.score; } // 当然还有更简便的写法 return (this.score - o.score) * (Student.desc ? -1 : 1); } @Override public String toString() { return "Student [name=" + name + ", score=" + score + "]"; }}
在创建一个Test类进行使用
public class Test { public static void main(String[] args) { Student s1 = new Student("张三",90); Student s2 = new Student("李四",75); Student s3 = new Student("王五",80); Student s4 = new Student("马六",60); Student s5 = new Student("田七",83); Student s6 = new Student("赵八",71); ArrayList<Student> al1 = new ArrayList<Student>(); al1.add(s1); al1.add(s2); al1.add(s3); al1.add(s4); al1.add(s5); al1.add(s6); // 使用desc来选择升降序排列 Student.desc = true; Collections.sort(al1); for (Student student : al1) { System.out.println(student); } }}
阅读全文
0 0
- Comparable接口实现自定义对象的排序功能
- Comparable接口实现对象排序
- 对象排序,实现comparable接口
- Java自定义实现Comparable接口的类,实现多维排序
- 使用 Comparable 接口实现对象的属性排序
- Comparable接口实现自定义类排序
- TreeSet集合存放自定义类型的对象,可以使用比较器,实现Comparable接口自己设置排序方式
- Comparable实现自定义排序
- comparable接口VScomparator接口及java中自定义对象运算符的实现
- Comparable实现对象排序
- 使用Comparable接口自定义排序
- Java comparable接口 对象排序
- 实现一个自定义字符串的排序 ,重写Comparable接口的练习!!
- 如何实现对象的排序Comparable
- Java集合对象的排序使用Collection.sort方法,先实现Comparable接口
- java 对象数组的排序(实现Comparable接口)和二分查找
- 接口Comparable实现List排序
- Comparable接口实现数组排序
- hihoCoder 1523 : 数组重排2
- 华为机试——数字颠倒
- STL学习之六:queue用法示例
- sklearn学习——SVM例程总结(PCA+Pipline+cv+GridSearch)
- bzoj2741[FOTILE模拟赛L]
- Comparable接口实现自定义对象的排序功能
- (转)你事业的上限究竟在哪里?《哈佛商业评论》史上最佳文章
- hdu2027 统计元音(C语言)
- [二分图匹配] [NOI2009] BZOJ 1562——序列变换
- HDU 6040& 2017年多校训练第一场 1008题
- 一年经验Java程序员面试经
- tcp 通信 服务器端
- 那一战
- SHA1