尋找數據結構這將具有以下屬性:尋找數據結構
- 固定大小(例如一個
Array
)。 - 不能包含相同的元素(如
HashSet
)。 - 能夠從任何位置移除元素(如
E remove(int i)
,位於ArrayList
)。 - 將元素設置在任何位置,但只有它是空的,否則拋出異常。
有沒有這樣的數據結構?或者我需要實施自己?
尋找數據結構這將具有以下屬性:尋找數據結構
Array
)。HashSet
)。E remove(int i)
,位於ArrayList
)。有沒有這樣的數據結構?或者我需要實施自己?
也許是一個類T []
和HashSet<T>
。如果HashSet
包含要添加的元素,則它是重複的。如果T []
有一個非空(或任何你標誌),該元素被佔用。要刪除,你需要從兩個數據結構中刪除。大小可以通過T []
進行限制。
有了這所有的4個操作將是O(1)
時間。
可以使用Arrays.asList
做到這一點:
list.set(i, null)
list.contains(element)
檢查列表中是否已包含元素。這將線性檢查內容;我假設名單會很小,所以這在實踐中很好。例如:
List<Integer> ints = Arrays.asList(new Integer[5]);
// Unset the value in the second slot, if it is non-null.
if (ints.get(2) != null) {
ints.set(2, null);
}
// Add 123 to the first slot which is null.
if (!ints.contains(123)) {
ints.set(ints.indexOf(null), 123);
}
所以,你希望它固定大小......但刪除或添加元素的能力? – Tunaki
爲什麼不創建自己的班級來完成這一切? – VatsalSura
你確實看到他說他可以這麼做......他只是要求一個更有效的解決方案。 Yeesh – RobotKarel314