2012-03-17 79 views
3

美好的一天!我如何確保列表中的項目是順序的?

我想問一下,如果我有一個項目列表說1,2,3,4,5 .. 然後我插入替換值'3'到'7',這將提示我一個錯誤COS列表不是連續的。

List<Domain> items = new ArrayList<Domain>(); 
+3

爲什麼不寫,檢查你即將插入的項目是否比其前任更大,而且比其繼任者小的方法? – 2012-03-17 18:30:42

回答

0

您可以重寫ArrayList,設置和添加方法以檢查項目set/added是否有效,如果不是,則拋出IllegalArgumentException。

爲什麼不能有一個總是排序的集合。

SortedSet<Domain> items = new TreeSet<Domain>(); 

這樣,您添加的項目將始終在正確的位置。

0

延長ArrayList和覆蓋add() & addAll()方法,

或簡單的使用Comparator & TreeSet

0

如果你想,當你更換一個元素,像你描述的異常,最好的辦法是擴展或包裝列表並覆蓋添加方法。

如果您真正想要的只是一個排序列表,請使用SortedSet實現中的一個。

相關問題