【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中的方法