Java 比较器的用法
2020-12-13 16:34
标签:接口 ret package core 比较 asc utils oid === 第一次写博客,正好在回顾Java的时候用到了比较器,记录一下使用的方法。 Java比较器多用于对象数组的排序,主要用到comparable和comparator接口 1、使用comparable接口 首先将需要实现排序对象的类实现comparable接口,实现后覆写comparaTo(T other)方法,在comparaTo方法中写出比较规则,最后调用java.utils.Arrays.sort()方法传入需要比较的对象数组即可排序。 测试如下: 运行结果为: 3 2 1 1 2 3 注: 比较时,若想要从大到小排序,将排序方式中的1更换成-1,-1更换成1即可。 ======================================= 2、使用comparator接口 有时,在设计Student类时没有考虑到实现Comparable接口,可自己编写一个比较器类. 创建一个比较器类,实现comparator 测试如下: 运行结果: 1号分数:3 3号分数:5 2号分数:5 上面的方法也可以像本次测试一样,修改比较规则,实现不同排序效果。 ======================================= 如果想为集合类排序,与第二种方法类似,在调用Collections.sort(st,new ComparatorSort())时传入集合和比较器即可。 Java 比较器的用法 标签:接口 ret package core 比较 asc utils oid === 原文地址:https://www.cnblogs.com/ELAIRS/p/11621106.html 1 import java.util.Arrays;
2
3 public class Main {
4
5 public static void main(String[] args) {
6
7 Student[] arr = new Student[3];
8 arr[0] = new Student(3);
9 arr[1] = new Student(2);
10 arr[2] = new Student(1);
11 for( Student a : arr )
12 System.out.print(a+" ");
13 Arrays.sort(arr);
14 System.out.println();
15 for( Student a : arr )
16 System.out.print(a+" ");
17 }
18 }
19
20 class Student implements Comparable
1 package practice;
2 import java.util.Arrays;
3 import java.util.Comparator;
4
5 public class Main {
6
7 public static void main(String[] args) {
8
9 Student[] arr = new Student[3];
10 arr[0] = new Student(1,3);
11 arr[1] = new Student(3,5);
12 arr[2] = new Student(2,5);
13 for( Student a : arr )
14 System.out.print(a+"\t");
15 Arrays.sort(arr,new StudentComparator()); //传入数组和比较器类
16 System.out.println();
17 for( Student a : arr )
18 System.out.print(a+"\t");
19 }
20 }
21
22 class Student{
23
24 int number; //学号
25 int score; //分数
26
27 public Student(int aNumber,int aScore){
28 this.number = aNumber;
29 this.score = aScore;
30 }
31
32 public String toString(){
33 return number+"号分数:"+score;
34 }
35
36 }
37
38 class StudentComparator implements Comparator
3号分数:5 2号分数:5 1号分数:3
上一篇:归并排序
下一篇:编写更好的jQuery代码的建议