我一直想知道如何实现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?