我強烈建議你創建一個類來保存你的列表值。這使您可以享受類型安全的好處,包括確保始終有兩個整數值(而不是列表中未知數量的項目)。例如:
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
內部列表看起來像一個座標值,爲什麼不爲它定義一個類。 –