【发布时间】:2017-10-26 03:44:29
【问题描述】:
我有一段代码如下:
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);
}
}
结束后,我有一个 3 元素数组的列表,其中每个数组中的最后一个元素是权重。我现在想按权重对这个列表进行排序,即到达一个完成的列表,其中对于每个元素 e,e_i[2] ≤ e_(i+1)[2]。有没有一种简单的方法可以在 Java 中执行这样的操作?我在寻找解决方案时遇到了 collections.sort() ,但这似乎只在我处理整数等可比较列表的情况下才有效。任何帮助表示赞赏。
【问题讨论】:
-
v1v2weighting.sort(Comparator.comparingInt(a -> a[2])); -
当我尝试实现这一点时,我收到“错误:表达式的非法开始”,箭头 -> 被指示为问题
-
@MMMMCK 哪个 Java 版本?
-
是的,该错误已在 Java 8 中修复。
-
@ShubhenduPramanik 1.7.0_151 显示在终端中