Java如何给数组排序Comparable方式

简介: Java如何给数组排序Comparable方式

通过Comparable接口实现类的自定义排序

简介:通过给类继承接口的方式来 重写compareTo方法 然后自定义排序规则,在合作开发的过程中 每个人更能很好的负责自己模块,提高开发效率。

import java.util.Arrays;
import java.util.Comparator;
public class Main {
    // 通过给类继承接口的方式来 重写compareTo方法 然后自定义排序规则
    static class Student implements Comparable<Student>{
        public int age;
        public String name;
        public Student(int age, String name) {
            this.age = age;
            this.name = name;
        }
        // 重写toString方法方便显示
        @Override
        public String toString() {
            return "Student{" +
                    "age=" + age +
                    ", name='" + name + '\'' +
                    '}';
        }
        // 这样的好处在于 在合作开发的过程中 每个人更能很好的负责自己模块
        @Override
        public int compareTo(Student o) {
            // compareTo方法比较原理在于用本类的this对象与 传入的o对象之间进行比较
            int num = 0;
            if (this.age >= o.age) num = -1;
            else num = 1;
            return num;
        }
    }
    public static void main(String[] args) {
        // 对于普通数组的排序
        Student [] a= new Student [5];
        a[0] = new Student(10, "李华");
        a[1] = new Student(9, "李明");
        a[2] = new Student(12, "李肖");
        a[3] = new Student(1, "李大");
        a[4] = new Student(5, "李页");
        // 对Student类按照年龄升序排序 可以不传入比较方法
        Arrays.sort(a);
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        // Student{age=12, name='李肖'} Student{age=10, name='李华'} Student{age=9, name='李明'} Student{age=5, name='李页'} Student{age=1, name='李大'}
    }
}


相关文章
|
SQL Java
解读JAVA处理排名问题-关于学生成绩排名及Collections中的sort方法与Comparable的使用
写一个项目真是存在很多的bug,修复的时间往往比开发所需要的时间更长,今天又出了一个bug,在这里记录一下,主要是针对系统中学生的成绩排名。
141 0
|
2月前
|
搜索推荐 Java
Java 中 Comparator 和 Comparable 的区别
【8月更文挑战第22天】
29 0
|
2月前
|
Java
"Java排序大揭秘:Comparable与Comparator,究竟有何神秘区别?掌握它们,告别排序难题!"
【8月更文挑战第19天】Java提供Comparable与Comparator两种排序机制。Comparable位于`java.lang`包,定义了`compareTo()`方法以实现类的自然排序;Comparator位于`java.util`包,通过`compare()`方法提供外部定制排序。实现Comparable固定了排序策略,适用于类自带排序逻辑;使用Comparator则可在不改动类的前提下灵活定义多种排序规则,适合多样化的排序需求。选择合适机制可优化排序效率并增强代码灵活性。
19 0
|
4月前
|
Java
Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Comparator接口的区别,那么只看这一篇就足够了!)
Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Comparator接口的区别,那么只看这一篇就足够了!)
|
5月前
|
Java
彻底搞懂Java中的Comparable和Comparator
彻底搞懂Java中的Comparable和Comparator
239 0
|
5月前
|
Java
【JAVA学习之路 | 提高篇】Java比较器(comparable) &&(comparator)
【JAVA学习之路 | 提高篇】Java比较器(comparable) &&(comparator)
|
5月前
|
存储 搜索推荐 算法
Java中的数组排序技术详解
Java中的数组排序技术详解
47 0
|
5月前
|
Java 索引
Java练习题-用冒泡排序法实现数组排序
Java练习题-用冒泡排序法实现数组排序
|
5月前
|
Java
【Java】通过Comparator比较器的方式给对象数组排序
【Java】通过Comparator比较器的方式给对象数组排序
48 0
|
5月前
|
Java
【Java】重写compareTo()方法给对象数组排序
【Java】重写compareTo()方法给对象数组排序
43 0