【java】自定义排序

使用Comparable接口

这里定义了一个类Node,有两个属性,id,age。

排序方法是,先根据id升序排,id一样,age降序排。

 

里面有一个compareTo方法。返回值有三个

1、 <   0   小于关系 (升序)

2、== 0   等于关系

3、>   0   大于关系 (降序)

 

 1 import java.util.*;
 2 public class sortself {
 3 
 4     public static void main(String[] args) {
 5         List <Node> list = new ArrayList<Node>();
 6         list.add(new Node(1,25));
 7         list.add(new Node(1,27));
 8         list.add(new Node(2,23));
 9         list.add(new Node(3,23));
10         list.add(new Node(4,23));
11         list.add(new Node(4,30));
12         
13         Collections.sort(list);
14         for(Node node: list) {
15             System.out.println(node.id + " " + node.age);
16         }
17 
18     }
19 }
20 
21 class Node implements Comparable<Node>{
22     int id;
23     int age;
24     
25     Node(int id,int age){
26         this.id = id;
27         this.age = age;
28     }
29     
30     @Override
31     public int compareTo(Node o) {
32         if(id == o.id) {
33             return o.age-age;
34         }
35         else
36             return id-o.id;
37     }
38 }

 

 

结果:

 


 

补充一个排序 

 

重写Comparator中的方法

posted @ 2019-03-22 17:19  甜酒果。  阅读(349)  评论(0编辑  收藏  举报