Java Array.sore怎么实现两个条件排序,网上说传入什么接口,可是我不会,有没有可以运行的代码看一下。
1条回答 默认 最新
- VICTOR_fusheng 2019-10-10 14:23关注
sort(T[] a, Comparator<? super T> c)你说的应该是这种方法,实现Comparator比较器。下面的是先比较姓名,姓名一致的时候在比较年龄,这边年龄用的Integer。
Student[] students = new Student[4]; Student student = Student.of("tom",18); Student student1 = Student.of("may",19); Student student2 = Student.of("alice",18); Student student3 = Student.of("tom",19); students[0] = student; students[1] = student1; students[2] = student2; students[3] = student3; Arrays.sort(students, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { int c1 = o1.getName().compareTo(o2.getName()); if (c1 == 0){ return o1.getAge().compareTo(o2.getAge()); } return c1; } }); System.out.println(Arrays.toString(students));
@Data @AllArgsConstructor(staticName = "of") public class Student { private String name; private Integer age; }
解决 无用评论 打赏 举报