集合框架类的默认容量是多少?

我知道Vectorjava中类的默认容量是 10,同样ArrayList也有它的默认容量 10。但是以下类的默认容量是多少:

  1. 向量

  2. 数组列表

  3. 链表

  4. 哈希表

  5. 链接哈希映射

  6. 并发哈希映射

  7. 哈希集

  8. 链接哈希集

  9. 树集

或者有没有其他方法可以获得java中所有集合框架类的默认容量?


茅侃侃
浏览 168回答 3
3回答

30秒到达战场

ArrayList = 10LinkedList = no intial capacityHashMap,LinkedHashMap,ConcurrentHashMap,HashSet,LinkedHashSet = 16TreeSet = empty

繁花不似锦

这里没有一个正确的答案,因为它取决于 Java 版本。例如RFR JDK-7143928 : (coll) Optimize for Empty ArrayList and HashMap made ArrayListand HashMapempty in the default in Java 8.您必须检查 JDK 中每个提到的类的默认构造函数。理论上,这也可能因 JDK 构建(例如 Oracle、IBM、Azul...)而异,因为默认ArrayList容量不是 Java 语言规范的一部分。

大话西游666

 1. Vector = 10 2. ArrayList = 10 3. LinkedList - does not have a capacity 4. HashMap = 16 (but with the default load factor of 0.75, only 12 can be populated before a resize will happen) 5. LinkedHashMap = 16 (read above)   6. ConcurrentHashMap = 16 7. HashSet = 16 (it's  based on a HashMap) 8. LinkedHashSet = 16 9. TreeSet = does not have one请注意,其中一些是懒惰的,并且所有这些都可能会因发行版的不同而有所变化。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java