我强烈建议您创建一个类来保存列表值。这样可以享受类型安全的好处,确保您始终只有两个整数值(而不是列表中未知数量的项目)。例如:
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方法
进行排序:
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]
[1,198,200],[2,50,61]
。 - Sergey Kalinichenko