问题描述
我对下面的说法有的问题:如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,List是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。如果,我要是增加List是原来的50%可以修改我增加List是原来的70%这样的方法或别的什么不?
解决方案
解决方案二:
请用标准中文发问goodluck
解决方案三:
看看这是什么啊
解决方案四:
不可以,List的主要实现类ArrayList并没有提供增长量这样一个参数,可以参见ArrayList源代码
解决方案五:
举个例子你想知道List接口的实现类ArrayList中关于存储空间不够时是怎么处理的吗?/***Increasesthecapacityofthis<tt>ArrayList</tt>instance,if*necessary,toensurethatitcanholdatleastthenumberofelements*specifiedbytheminimumcapacityargument.**@paramminCapacitythedesiredminimumcapacity*/publicvoidensureCapacity(intminCapacity){modCount++;intoldCapacity=elementData.length;if(minCapacity>oldCapacity){ObjectoldData[]=elementData;intnewCapacity=(oldCapacity*3)/2+1;//增加多大?就是这么大。if(newCapacity<minCapacity)newCapacity=minCapacity;//minCapacityisusuallyclosetosize,sothisisawin:elementData=Arrays.copyOf(elementData,newCapacity);}}
这个是它底层实现的扩容算法,API中没有提供修改的方法。
解决方案六:
不能自己修改Sun提供的API可以考虑按照List接口的实现类,自行扩展一个类似的列表
解决方案七:
继承Controller,自已写个这样的类吧。
解决方案八:
LZ自己扩展一下ArrayList实现上面的方法不就可以了