美好的一天!我如何確保列表中的項目是順序的?
我想問一下,如果我有一個項目列表說1,2,3,4,5 .. 然後我插入替換值'3'到'7',這將提示我一個錯誤COS列表不是連續的。
List<Domain> items = new ArrayList<Domain>();
美好的一天!我如何確保列表中的項目是順序的?
我想問一下,如果我有一個項目列表說1,2,3,4,5 .. 然後我插入替換值'3'到'7',這將提示我一個錯誤COS列表不是連續的。
List<Domain> items = new ArrayList<Domain>();
您可以重寫ArrayList,設置和添加方法以檢查項目set/added是否有效,如果不是,則拋出IllegalArgumentException。
爲什麼不能有一個總是排序的集合。
SortedSet<Domain> items = new TreeSet<Domain>();
這樣,您添加的項目將始終在正確的位置。
延長ArrayList和覆蓋add()
& addAll()
方法,
或簡單的使用Comparator
& TreeSet
如果你想,當你更換一個元素,像你描述的異常,最好的辦法是擴展或包裝列表並覆蓋添加方法。
如果您真正想要的只是一個排序列表,請使用SortedSet實現中的一個。
如果您使用的是Java 7,請嘗試使用:
http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html
爲什麼不寫,檢查你即將插入的項目是否比其前任更大,而且比其繼任者小的方法? – 2012-03-17 18:30:42