我知道java中Vector类的默认容量是10,类似地,ArrayList也具有默认容量10。但是,以下类的默认容量是什么?
或者还有其他方法来获取java中所有集合框架类的默认容量?
发布于 2018-10-03 13:06:16
这里没有一个正确的答案,因为它将取决于Java版本。例如,在Java8中,RFR 7143928:(coll)对空ArrayList和HashMap的优化默认使ArrayList和HashMap为空。
您必须检查JDK中提到的每个类的默认构造函数。理论上,这也可能因JDK构建而不同(例如Oracle、IBM、Azul.)默认情况下,ArrayList容量不是Java规范的一部分。
发布于 2018-10-03 13:15:08
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请注意,他们中的一些人很懒,而且他们都会在不同版本之间发生变化。
发布于 2018-10-03 13:10:16
ArrayList = 10
LinkedList = no intial capacity
HashMap,LinkedHashMap,ConcurrentHashMap,HashSet,LinkedHashSet = 16
TreeSet = emptyhttps://stackoverflow.com/questions/52627644
复制相似问题