And*_*per 0 java collections arraylist hashmap
按照这个
HashSet的基础数据结构是哈希表.
但我还读到HashSet在内部使用HashMap来避免重复值,而重复值又在内部使用了桶数组和LinkedList(在Java 8中由树替换)
那么说HashSet使用HashTable作为数据结构和HashMap作为集合是正确的吗?
TreeSet实现SortedSet接口,因此不允许重复值.
这是否意味着TreeSet不在内部使用HashMap来使用HashSet来避免重复值?LinkedHashSet是否在内部使用HashMap?
按照这个
建议不要使用内存点视图数组.
为什么?通过我之前阅读的内容 -
由于无法为原始数据类型创建ArrayList,因此ArrayList的成员始终引用不同内存位置的对象(有关详细信息,请参阅此处).因此,在ArrayList中,实际对象永远不会存储在连续的位置.实际对象的引用存储在连续的位置.在数组中,它取决于数组是基本类型还是对象类型.在原始类型的情况下,实际值是连续的位置,但是在对象的情况下,分配类似于ArrayList.
小写散列表(通常是定义的数据结构)和java Hashtable类之间存在差异,java 类是Java中哈希表的同步实现,早于类HashMap和HashSet类.HashSet根本不使用Hashtable该类.相反,它使用(再次,小写h)哈希表数据结构,它是使用实现的HashMap.Hashtable应该很少使用当代代码.根据javadocsHashtable:
如果不需要线程安全实现,建议使用HashMap代替Hashtable.如果需要线程安全的高度并发实现,那么建议使用ConcurrentHashMap代替Hashtable.
至于你的其他问题:
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |