我一直想知道如何實現Java中的Set。我們能否像實現HashMap一樣使用LinkedList和一個包含Key和Value的對象(Cell)來實現它?你將如何處理獨特的部分?如何在Java中實現設置數據結構?
5
A
回答
5
2
基本上,一個Set只是一個只包含鍵的Map。所以你應該告訴你自己關於映射算法。注意:例如HashSet實際上只是HashMap的一個適配器。 HashSet的add-method只使用HashMap.put(value,SomeDummyValue)。
1
下面是一個代碼段以上解釋解答了
public HashSet() { map = new HashMap<>(); }
private transient HashMap<E,Object> map;
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
// Since PRESENT is a constant, for all keys we have same value in backup HashMap called map.
public Iterator<E> iterator() {
return map.keySet().iterator();
}
相關問題
- 1. 在java中實現數據結構
- 2. Java樹數據結構實現
- 3. 在數據結構中實現隊列
- 4. 在C++中實現數據結構
- 5. 在java中的數據結構的內部實現?
- 6. 在java中實現它們的遊戲樹和數據結構?
- 7. 試圖在java中實現trie數據結構
- 8. 在C++中設計Prim實現的數據結構
- 9. 如何在VHDL中實現堆棧/隊列等數據結構?
- 10. 如何實現一個數據結構,彎曲,只是像LinkedHashSet在Java中
- 11. 在javascript/jQuery中設置Java的數據結構
- 12. Java的堆結構實現
- 13. 非結構化數據如何實現數據挖掘?
- 14. 如何在Arduino中設置關聯數據結構
- 15. 設計數據結構/ Java數據結構
- 16. 如何使用Java中的Multidimensional Arraylist或HashMap實現以下數據結構
- 17. 如何將這個json feed實現到數據庫結構中?
- 18. C++實現的數據結構庫?
- 19. 實現上的數據結構
- 20. 實現算法和數據結構的
- 21. 實現樹型數據結構
- 22. 數據結構來實現連接
- 23. 實現一個TRIE數據結構
- 24. 如何在CMake中設置STL實現?
- 25. 如何在admin中實現設置?
- 26. 數據結構現在
- 27. 對應於java集合的ruby數據結構實現
- 28. 如何設置QVariant結構?
- 29. Java數據結構
- 30. Java數據結構