【发布时间】:2012-09-08 00:51:11
【问题描述】:
我想知道为什么HashSet 在幕后使用HashMap,TreeSet 使用TreeMap,而LinkedHashSet 在内部使用LinkedHashMap?由于Set 只携带和存储密钥而不是值,所以使用额外的内存空间不是不经济吗?
HashMap 拥有的Entry 内部类如下
class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;
final int hash;
...
....
}
对于 Set,我们真的不需要 V value 变量,对吗?那么在内部使用地图对象的好处和主要原因是什么?
【问题讨论】: