[英]Java data structure with a set() method and O(1) Contains()
Java中是否存在可以在特定索引處替換項目的有序數據結構,並且還具有O(1)時間復雜度的contains方法?
LinkedHashSet幾乎是我要尋找的東西,但是您不能使用它們在索引處設置/替換項目。
不在標准Java類中。 您可以很容易地創建一個由HashSet
和ArrayList
組成的類。
您可以使用將項目存儲在ArrayList
並使用HashMap<ItemType, Integer>
從元素類型映射到List
中等效類中的元素數,從而允許使用List
訪問元素並測試是否通過使用包含一個項目
Integer i = map.get(object);
boolean contained = ( i != null ) && ( i > 0 );
更新地圖以添加元素:
map.merge(object, 1, Integer::sum);
刪除元素:
map.computeIfPresent(object, (k, v) -> v > 1 ? v - 1 : null);
如果列表中替換了某個項目,則可以按以下方式處理
map.merge(newValue, 1, Integer::sum);
map.computeIfPresent(oldValue, (k, v) -> v > 1 ? v - 1 : null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.