我强烈建议你创建一个类来保存你的列表值。这使您可以享受类型安全的好处,包括确保始终有两个整数值(而不是列表中未知数量的项目)。例如:
public class Range implements Comparable<Range> {
private final int startPosition;
private final int endPosition;
public Range(int startPosition, int endPosition) {
this.startPosition = startPosition;
this.endPosition = endPosition;
}
@Override
public int compareTo(Range o) {
return startPosition - o.startPosition;
}
@Override
public String toString() {
return String.format("[%d,%d]", startPosition, endPosition);
}
}
因为这个类实现Comparable
,您可以用正常Collections.sort method
排序:
public static void main(String[] args) throws Exception {
List<Range> ranges = Arrays.asList(new Range(198, 200), new Range(50,
61));
System.out.println("Unsorted");
for (Range range : ranges) {
System.out.println(range);
}
Collections.sort(ranges);
System.out.println("Sorted");
for (Range range : ranges) {
System.out.println(range);
}
}
输出:
Unsorted
[198,200]
[50,61]
Sorted
[50,61]
[198,200]
您正在尝试对用户定义的对象进行排序。您将不得不使用比较器或类似的界面。这些链接将帮助你.http://www.thejavageek.com/2013/06/17/sorting-user-defined-objects-part-1/ –
这看起来不像整数列表。这将是一个列表清单:'[1,198,200],[2,50,61]' – dasblinkenlight
内部列表看起来像一个坐标值,为什么不为它定义一个类。 –