我想知道为什么HashSet在幕后使用HashMap
、TreeSet
使用TreeMap
和内部LinkedHashSet
使用?LinkedHashMap
因为Set
只是携带和存储密钥而不是值,所以使用额外的内存空间不是不经济吗?
具有的Entry
内部类HashMap
如下
class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;
final int hash;
...
....
}
对于 Set 我们真的不需要那个V value
变量,对吗?那么在内部使用地图对象的好处和主要原因是什么?