当前位置:编程学习 > JAVA >>

list的实际大小和list.size()得到的值不一样,求大侠帮忙,很急!!!

--------------------编程问答-------------------- 我用MyEclipse的debug的时候发现list.size()是17,但是其中只有16个String对象,然后我遍历这个list的时候就抛数组越界异常...我用
for(int i=0;i<list.size();i++){}遍历
for(Iterator i;...)遍历都试过了,效果都是数组越界,有没有哪位大侠碰见一样的情况过啊? --------------------编程问答-------------------- 这是不是java底层的一个bug还是由于list不是线程安全而造成的呢?
哪位大侠有类似的经历,我百度了全然没有答案啊.... --------------------编程问答-------------------- 重复了元素9999 --------------------编程问答--------------------
引用 3 楼 fangmingshijie 的回复:
重复了元素9999



要是重复了9999的话,实际元素岂不是更少了呢?   那list.size()方法java底层是怎么实现的啊?谢谢回复 --------------------编程问答--------------------
引用 3 楼 fangmingshijie 的回复:
重复了元素9999



而且应该说,List中可以重复添加一样的字符串才对啊...他们都是new出来的,内存地址不一样啊 --------------------编程问答-------------------- 代码贴出来看看,你这样问,没有结果 这种结果肯定是你代码问题 --------------------编程问答--------------------
引用 6 楼 fangmingshijie 的回复:
代码贴出来看看,你这样问,没有结果 这种结果肯定是你代码问题



sorry,今天工作回来匆忙,忘记拷贝代码了,代码牵涉到了很多业务...但是在这一个地方总是出现这个问题,一调试发现就是这样的问题.... --------------------编程问答-------------------- 你的List具体实现类是如何规定的?如果他不保证size=元素数量,那结果是这样没啥奇怪的.
ps:为啥你用Iterator的方式进行循环时会出现数组越界呢?这很可能已经脱离数组了... --------------------编程问答-------------------- (1)ArrayList不是线程安全的
(2)不是bug,是你不会用。作为应用最广泛的集合类,从jdk1到jdk7,这都十几年了,如果是bug早就修复了 --------------------编程问答-------------------- 你的代码涉及到同步吗
list不是线程安全的
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,