Java重写compareTo方法的原理分析和具体实现

阅读: 评论:0

Java重写compareTo方法的原理分析和具体实现

Java重写compareTo方法的原理分析和具体实现

原理分析

当我们想排序一个自定义的数组,Java又没有直接提供它们的比较方式时。我们可以 通过实现接口Comparable并重写compareTo()方法来添加对自定义数组的比较,然后通过Arrays的sort()方法来将这个数组排序。这样就可以快速完成你所需要的排序了。有些同学就要问了:为什么重写了compareTo()方法就可以通过Arrays.sort()来进行排序了,我们可以通过源码来解释:




我们从源码可以看到调用Arrays.sort()最后会通过Comparable接口的compareTo()对数组进行比较排序

具体实现

ample.demo;import java.util.Arrays;public class Coming {public static void main(String[] args){Student[] s=new Student[5];s[0]=new Student(0,"a",60);s[1]=new Student(1,"b",40);s[2]=new Student(2,"c",80);s[3]=new Student(3,"d",55);s[4]=new Student(4,"e",12);Arrays.sort(s);for (Student ss:s) {System.out.println(ss);}}public static class Student implements Comparable<Student>{private Integer id;private String name;private Integer grade;public Student(Integer id, String name, Integer grade) {this.id = id;this.name = ade = grade;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getGrade() {return grade;}public void setGrade(Integer grade) {ade = grade;}@Overridepublic String toString() {return "Student{" +"id=" + id +", name='" + name + ''' +", grade=" + grade +'}';}@Overridepublic int compareTo(Student o) {return (Grade()&Grade())?1:-1;}}
}

最后的运行结果为:

本文发布于:2024-02-01 10:51:48,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170675590836103.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:重写   原理   方法   Java   compareTo
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23