关于比较器,我们知道我们java数组中可以使用一个方法:Array.sort(array);来进行排序
2018-10-22 18:14
489 查看
关于比较器,我们知道我们java数组中可以使用一个方法:Array.sort(array);来进行排序,如果我们数组中是放的基本数据类型,就可以直接比较大小排序,如果我们放的是对象的话,这样排序就意义不大,需要我们自己进行相应的修改,得到我们想要的比较结果。
比如我们有三个学生,学生属性有id,name,age,我们可以使用id来排序,也可以使用age来排序。两者结果是不一样的。下边我们来实现这个功能
下边会涉及到comparator接口(不懂的同学可以去查询一下comparable和comparator的区别):
[code]package 比较器; import java.util.Arrays; import java.util.Comparator; public class ComparatorTest { public static class Student { private int id; private String name; private int age; public Student(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + ", age=" + age + "]"; } } //这里是比较器1,是利用id来进行比较 public static class IdComparator implements Comparator<Student> { @Override public int compare(Student o1, Student o2) { // TODO Auto-generated method stub return o1.id - o2.id; } } //这里是比较器2,是利用age来进行比较 public static class AgeComparator implements Comparator<Student> { @Override public int compare(Student o1, Student o2) { // TODO Auto-generated method stub return o1.age - o2.age; } } public static void main(String[] args) { Student s1 = new Student(1, "小红", 12); Student s2 = new Student(3, "小张", 10); Student s3 = new Student(2, "小王", 8); Student[] sArray = { s1, s2, s3 }; Arrays.sort(sArray,new IdComparator()); for(int i=0;i<sArray.length;i++){ System.out.println(sArray[i]); } System.out.println("----------------------------"); Arrays.sort(sArray,new AgeComparator()); for(int i=0;i<sArray.length;i++){ System.out.println(sArray[i]); } } }
控制台打印如下:
阅读更多
相关文章推荐
- 浅谈JavaScript--Array数组sort()排序方法与自定义比较器的使用
- 由多个Object(以Teacher为例)对象所形成的数组可以使用Arrays.sort方法进行排序(编号由低到高排序)。
- 由多个Object(以Teacher为例)对象所形成的数组可以使用Arrays.sort方法进行排序(编号由低到高排序)。
- 使用Array的Sort()方法对数组进行排序
- 编写一个使用数组类模板Array对数组进行排序、求最大值和求元素和的程序,并采用相关数据进行测试。
- 小康陪你学JAVA--------sort方法对数组进行排序
- js sort方法根据数组中对象的某一个属性值进行排序
- 编写一个使用数组类模板Array对数组进行排序、求最大值和求元素和的程序,并采用相关数据进行测试。
- 【Java面试题】17 如何把一个逗号分隔的字符串转换为数组? 关于String类中split方法的使用,超级详细!!!
- 数组与集合的应用之数组排序与查询(使用Sort方法对数组进行排序)
- JAVA--定义一个包含整型数组参数的方法,用来接收成绩数组,进行成绩排序并输出前三名
- 使用sort方法对数组进行排序(split()出现错误的解决)
- js使用Array.prototype.sort()对数组对象排序的方法
- js:数组重排序问题:如何使用sort()方法按数值的大小进行升序或降序排列
- js sort方法根据数组中对象的某一个属性值进行排序
- 使用函数指针,完成一个sort()函数,能对任何类型的数组元素进行排序: 回调函数 以及 memcpy ()原型实现
- 【Java】编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置
- JavaScript 使用 sort() 方法从数值上对数组进行排序
- 定义Car类,包含两个字段:name和price; (2)在Main方法中,使用Array.Sort方法对Car对象数组根据姓名和价格排序。
- 那些年我们刷过的算法题(排序)---有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序