java - Java 中有一个数组列表;如何按每个数组的最后一个元素排序?

标签 java arrays list sorting

我有一段代码,如下所示:

List<int[]> v1v2weighting = new ArrayList<int[]>();

for(int i = 0; i < size; i++){
    for(int j = 0; j < size; j++){
        int[] a = {i,j,graph[i][j]};
        v1v2weighting.add(a);
    }
}

结束后,我有一个三元素数组的列表,其中每个数组中的最后一个元素是权重。我现在想按权重对这个列表进行排序,即得到一个完成的列表,其中对于每个元素 e,e_i[2] ≤ e_(i+1)[2]。在Java中是否有一种简单的方法来执行这样的操作?我在寻找解决方案时遇到了 collections.sort() ,但这似乎只在我处理可比列表(例如整数)的情况下才有效。如有任何帮助,我们将不胜感激。

最佳答案

要在Java 1.7中对List进行排序,您可以使用以下代码段。

Collections.sort(v1v2weighting, new Comparator<int[]>() {
    public int compare(int[] o1, int[] o2) {
        return Integer.compare(o1[2], o2[2]); // suppose all your arrays has at least 3 elements
    }
}

事实上,您可以使用此方法实现任何排序机制。

关于java - Java 中有一个数组列表;如何按每个数组的最后一个元素排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945520/

相关文章:

java - 在您的经验中发现了最差的 Java 实践?

java - Hibernate - 一个设计问题

java - 检查字符串是否等于枚举常量的名称

javascript - 阵列没有看到新的更新

java - 如何从 JFrame 中删除 JscrollPane?

javascript - 无法获取Javascript对象中数组/对象的长度

c++ - 将 byte[] 数组作为方法的多个参数传递

python - 将列表列与第二个列表进行比较并返回第三个列表中的项目

r - R 中列表对象与 apply 函数之间的操作

python - 如何从列表中随机选择一个变量,然后在 python 中修改它?