我想知道为什么HashSet http://www.docjar.com/html/api/java/util/HashSet.java.html uses HashMap
, TreeSet
uses TreeMap
, and LinkedHashSet
uses LinkedHashMap
幕后内部?自从Set
只是携带和存储key而不是value,那么使用额外的内存空间不是很不经济吗?
The 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
变量,正确吗?那么在内部使用地图对象的好处和主要原因是什么?
更少的代码,更少的错误,更少的测试。
通过重复使用相同的代码,您只需优化、调试和测试一次。内存开销是最小的——每个条目都有另一个指针,与 Key 相比可以忽略不计。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)