dabocaiqq 2019-10-10 08:58 采纳率: 63.3%
浏览 181

Java Array.sore怎么实现两个条件排序,网上说传入什么接口,可是我不会

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;
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料