java中实现Comparable接口实现自定义排序

Posted 拒绝爆肝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中实现Comparable接口实现自定义排序相关的知识,希望对你有一定的参考价值。

 1 class Student implements Comparable{
 2     String name;
 3     int gpa;
 4     @Override
 5     public int compareTo(Object arg0) {
 6         // TODO Auto-generated method stub
 7         Student s = (Student)arg0;
 8         
 9         if(gpa == s.gpa) return name.compareTo(s.name);
10         else if(gpa < s.gpa) return -1;
11         else if(gpa > s.gpa) return 1;
12         else return 0;
13         
14     }
15     
16     
17 }
18 
19 class Test {
20     public static void main(String[] args){
21         Scanner in = new Scanner(System.in);
22         
23         int n = in.nextInt();
24         
25         Student[] s = new Student[n];
26         
27         for(int i = 0;i < n;i ++){
28             s[i] = new Student();
29             s[i].name = in.next();
30             s[i].gpa = in.nextInt();
31         }
32         
33         Arrays.sort(s);
34         
35         for (Student ss : s)  
36         {  
37             System.out.println(ss.name);  
38             System.out.println(ss.gpa);  
39         }  
40     }
41 }

 

以上是关于java中实现Comparable接口实现自定义排序的主要内容,如果未能解决你的问题,请参考以下文章

Java 对自定义的类排序: Comparable接口

java TreeSet

JAVA实现自定义比较器Comparator 和 Comparable

Comparable & Comparator的区别

Comparator和Comparable的联系与区别

接口,Comparable和Comparator