java - 根据一个值对数字对进行排序 - Java

标签 java algorithm sorting

我对一种存储数字对并根据其中一个数字的值对它们进行排序的有效方法很感兴趣。假设我有一个数字列表:

(1, 2), (3, 5), (4, 3), (7, 8)

这些对需要以某种方式存储,然后按照第二个数的降序排序,这样这些对的顺序是

(7, 8), (3, 5), (4, 3), (1, 2)

实现此目的的 Java 代码是什么?我知道 C++ 的 std::pair,但我想知道 Java 中的过程。

最佳答案

创建一个类对实现可比接口(interface),并使用arraylistcollections.sort 对其进行排序。

例子:-

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);

            }


        }

关于java - 根据一个值对数字对进行排序 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21576292/

相关文章:

java - Java 垃圾收集访谈

java - 用递归方法记录标记节点的数量

c++ - 使用链表插入排序的段错误

c++ - 如何在 C++ 中按列对多维数组进行排序?

java - 无法获取新时间

java - "postpone"任务真的那么难(或 "wait for idle")

algorithm - 关于大o证明的问题

regex - 从示例算法创建正则表达式

c++ - 是否存在以下列方式对两个范围进行排序和划分的标准算法?

python - 对元组列表进行排序,元组的第二个元素是列表