【发布时间】:2017-12-25 21:16:41
【问题描述】:
我有一个 2D 数组,并将其填充到 Segment 类型的 ArrayList(我已经定义了一个类)。我想根据每个对象中的第二个元素按升序对 Arraylist 进行排序。我检查了这个link,它使用可比较的类对其进行排序,但它不适用于我,它给了我
int 不能被取消引用
错误。
下面是我的代码
请注意,object.getR() 给了我每个对象的中间元素。例如,segment 类型的对象x= (6,8,4) 然后x.gerR() 给我的值是8。
int[][] input = {
{0, 3, 3}, {3,5,2}, {6,8,4}, {9,11,3}, {2,4,4}, {5,6,3}, {7,8,3},{9,12,1}
};
ArrayList<Segment> data = new ArrayList<>();
for (int[] input1 : input) {
data.add(new Segment(input1[0], input1[1], input1[2]));
}
Collections.sort(data, new Comparator<Segment>() {
@Override
public int compare(Segment lhs, Segment rhs) {
return lhs.getR().compareTo(rhs.getR());
}
});
【问题讨论】:
-
“但它对我不起作用”它到底对你不起作用?您是否收到错误/异常/与预期不同的结果(例如升序而不是降序)?
-
请发布您看到的实际错误消息。
-
您的问题与排序无关。这是一个编译错误。
标签: java arrays sorting arraylist