Sorting pairs of numbers according to one value - Java
我感兴趣的是一种有效的方法来存储成对的数字,并根据其中一个数字的值对它们进行排序。假设我有一个数字列表:
1 | (1, 2), (3, 5), (4, 3), (7, 8) |
这些对需要以某种方式存储,然后按第二个数字的降序排序,这样这些对的顺序就是
1 | (7, 8), (3, 5), (4, 3), (1, 2) |
号
要实现这个目标,Java代码是什么?我知道C++的EDOCX1 0,但是我想知道Java中的过程。
制作一个
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | public class pair implements Comparable<pair> { int a,b; @Override public int compareTo(pair o) { return(o.b-b); } public pair(int a,int b) { this.a = a ; this.b = b; } public String toString() { return"("+a+","+b+")"; } public static void main(String[] args) { ArrayList pairs = new ArrayList(); pairs.add(new pair(4,5)); pairs.add(new pair(7,8)); pairs.add(new pair(1,3)); Collections.sort(pairs); System.out.println("sorted:"+pairs); } } |
您可以使用treemap并以相反的顺序存储值。所以巴黎的第二个价值观将是地图的关键。
可以使用