黑马程序员技术交流社区

标题: 如何用compareto实现多属性值排序mpareTo实现多级排序 [打印本页]

作者: lll456123l    时间: 2016-5-1 16:42
标题: 如何用compareto实现多属性值排序mpareTo实现多级排序
有学生类,他有名字,年龄,成绩,现用conparable接口实现:县比较名字长度,如果一样,比较年龄,如果年龄也一样,比较分数。
作者: lll456123l    时间: 2016-5-2 08:54
没人回复吗,求解答啊
作者: liuqjss    时间: 2016-5-2 17:09
比较名字长度。。
作者: pal_xie    时间: 2016-5-2 19:53
本帖最后由 pal_xie 于 2016-5-2 19:55 编辑
  1. public class Student implements Comparable<Student> {
  2.         private String name;
  3.         private int age;
  4.         private int score;

  5.         @Override
  6.         public int compareTo(Student s) {
  7.                 int i = this.name.length() - s.name.length();
  8.                 int j = this.age - s.age;
  9.                 return i == 0 ? (j == 0 ? this.score - s.score : j) : i;
  10.         }
  11. }
复制代码

不过建议加个名字字符字典顺序比较
作者: yaolv7    时间: 2016-5-2 19:59
水水更健康{:2_40:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2