首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集合框架类的默认容量是什么?

集合框架类的默认容量是什么?
EN

Stack Overflow用户
提问于 2018-10-03 13:01:03
回答 4查看 5.1K关注 0票数 8

我知道java中Vector类的默认容量是10,类似地,ArrayList也具有默认容量10。但是,以下类的默认容量是什么?

  1. 向量
  2. ArrayList
  3. LinkedList
  4. HashMap
  5. LinkedHashMap
  6. ConcurrentHashMap
  7. HashSet
  8. LinkedHashSet
  9. TreeSet

或者还有其他方法来获取java中所有集合框架类的默认容量?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-10-03 13:06:16

这里没有一个正确的答案,因为它将取决于Java版本。例如,在Java8中,RFR 7143928:(coll)对空ArrayList和HashMap的优化默认使ArrayListHashMap为空。

您必须检查JDK中提到的每个类的默认构造函数。理论上,这也可能因JDK构建而不同(例如Oracle、IBM、Azul.)默认情况下,ArrayList容量不是Java规范的一部分。

票数 11
EN

Stack Overflow用户

发布于 2018-10-03 13:15:08

代码语言:javascript
复制
 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

请注意,他们中的一些人很懒,而且他们都会在不同版本之间发生变化。

票数 6
EN

Stack Overflow用户

发布于 2018-10-03 13:10:16

代码语言:javascript
复制
ArrayList = 10

LinkedList = no intial capacity

HashMap,LinkedHashMap,ConcurrentHashMap,HashSet,LinkedHashSet = 16

TreeSet = empty
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52627644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档