集合的问题,new HashSet(0),初始容量为什么要设置成0?

風中漫步 2015-10-29 03:08:06
初始容量设置成0,我用的时候难道不能向集合里面放东西了?
...全文
320 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
v_nbsp 2018-08-22
  • 打赏
  • 举报
回复
一对多关系映射是需要用到set
private Set<实体类>实体类=new Hashset<实体类>(); 

首先new的原因是可以减少空指针异常。
set的实现底层是与数组相关,所以new了之后就会有一个默认长度。web应用是多线程的,假如有10个人使用就会有是个这样的对象。人越多new了
之后消耗的内存越多。集合区别于数组是因为集合长度可变所以new Hashset<实体类>(0);-----只分配内存地址,使对象不成空,但是默认空间不开辟。

所以不是改成0就不能放东西了。
  • 打赏
  • 举报
回复
你可以看看add方法的源码,初始的低层数组满了的话,会有个扩容的动作

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧