A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭兴业 中级黑马   /  2013-4-20 21:40  /  1567 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ArrayList是数组实现,它是每次增加50%,线程不安全.
Vector 是数组实现  它每次拉回100%,线程安全的。
那个  增加50%跟拉回100%的理解

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
滔哥 + 1
张熙韬 + 3

查看全部评分

4 个回复

倒序浏览
ArrayList增加50%的意思是,每一次往集合里面添加元素,集合的大小都会扩充50%,它是线程不安全的。
Vector也是List集合的一种,它每次是增加100%,它是线程安全。
我们在选择List集合时,首选ArrayList集合。

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
滔哥 + 1
张熙韬 + 3

查看全部评分

回复 使用道具 举报
Vector:底层是数组数据结构,线程同步。被ArrayList替代了
ArrayList:是不同步的。
他们构造一个初始容量都为 10 的空列表
当往ArrayList中存满时,再存数据,ArrayList就会自动扩容50%,就是再增加原来大小的50%
Vector缺省情况下自动增长原来一倍的数组长度,即翻倍的增加。

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
滔哥 + 1
张熙韬 + 3

查看全部评分

回复 使用道具 举报
每次增加100%,就会越来越浪费内存空间的。你想想,每次增加一倍的空间总比每次增加一半的空间浪费的可能性要大很多了,这也是前辈们根据开发经验总结出来的规律。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马