我对下面的说法有的问题:
    如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,
List是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。如果, 我要是   增加List是原来的50%    可以修改我   增加List是原来的70% 这样的方法或别的什么不?

解决方案 »

  1.   

    请用标准中文发问good luck
      

  2.   

    不可以,List的主要实现类ArrayList并没有提供增长量这样一个参数,可以参见ArrayList源代码
      

  3.   

    举个例子你想知道List接口的实现类ArrayList中关于存储空间不够时是怎么处理的吗?
        /**
         * Increases the capacity of this <tt>ArrayList</tt> instance, if
         * necessary, to ensure that it can hold at least the number of elements
         * specified by the minimum capacity argument.
         *
         * @param   minCapacity   the desired minimum capacity
         */
        public void ensureCapacity(int minCapacity) {
    modCount++;
    int oldCapacity = elementData.length;
    if (minCapacity > oldCapacity) {
        Object oldData[] = elementData;
        int newCapacity = (oldCapacity * 3)/2 + 1;  //增加多大?就是这么大。
             if (newCapacity < minCapacity)
    newCapacity = minCapacity;
                // minCapacity is usually close to size, so this is a win:
                elementData = Arrays.copyOf(elementData, newCapacity);
    }
        }
    这个是它底层实现的扩容算法,API中没有提供修改的方法。
      

  4.   

    不能自己修改Sun提供的API可以考虑按照List接口的实现类,自行扩展一个类似的列表
      

  5.   

    继承Controller,自已写个这样的类吧。
      

  6.   

    LZ自己扩展一下ArrayList  实现上面的方法 
    不就可以了