我一直想知道如何實現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. 在java中的數據結構的內部實現?
- 5. 試圖在java中實現trie數據結構
- 6. 在java中實現它們的遊戲樹和數據結構?
- 7. 如何在VHDL中實現堆棧/隊列等數據結構?
- 8. 如何實現一個數據結構,彎曲,只是像LinkedHashSet在Java中
- 9. 在javascript/jQuery中設置Java的數據結構
- 10. Java的堆結構實現
- 11. 非結構化數據如何實現數據挖掘?
- 12. 設計數據結構/ Java數據結構
- 13. 如何使用Java中的Multidimensional Arraylist或HashMap實現以下數據結構
- 14. 實現樹型數據結構
- 15. C++實現的數據結構庫?
- 16. 數據結構來實現連接
- 17. 實現一個TRIE數據結構
- 18. 如何在CMake中設置STL實現?
- 19. 如何設置QVariant結構?
- 20. Java數據結構
- 21. Java數據結構
- 22. 在使用PySpark時如何在Spark中實現Python數據結構?
- 23. 如何在C中實現結構的二維數組C
- 24. 如何使用來實現to_query(數據)花好月圓結構
- 25. 如何印刷使用類實現的樹數據結構?
- 26. C - 如何使我的數據結構實現同步?
- 27. 我如何使用C++實現堆數據結構?
- 28. 如何實現具有動態數據的javascript地圖結構?
- 29. 大數據層次結構 - 如何實現?
- 30. 如何使用樹狀數據結構高效地實現unordered_map?