问题描述
在java源码中写道:publicObject[]toArray(){//Estimatesizeofarray;bepreparedtoseemoreorfewerelementsObject[]r=newObject[size()];Iterator<E>it=iterator();for(inti=0;i<r.length;i++){if(!it.hasNext())//fewerelementsthanexpectedreturnArrays.copyOf(r,i);r[i]=it.next();}returnit.hasNext()?finishToArray(r,it):r;}
注释说明,在转换的期间,会出现集合元素少于或者多余,初始化数组的大小。但是数组的初始化是以集合的大小为依据的,也就是Object[]r=newObject[size()];
这句话。请问,为什么还需要对元素的多少进行考虑~~~~~~谢谢。。。
解决方案
解决方案二:
因为不是同步的访问,所以toArray期间集合的数据存在被修改的可能。
时间: 2024-09-26 22:35:51