ArrayList Size Increment



我有下面的代码,我试图理解一件事。为什么这句话…

System.out.print(l1.size());

…在我的interleave方法的for循环之后,每次给我一个不同的l1大小?它不应该为我的数组列表返回一个常量大小吗?

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Alternate_ArrayList {
    public static void main(String args[])
    {
        final List<Integer> l1 = new ArrayList<Integer>( Arrays.asList( 10, 20, 30) );
        final List<Integer> l2 = Arrays.asList( 4, 5, 6, 7 ,8 );
        System.out.println( interleave( l1, l2 ));
        //System.out.println(Math.min(3, 4));
    }
    public static <T> List<T> interleave( final List<T> l1, final List<T> l2 ) {
        for ( int i = 0; i < l2.size(); i++ ) {
            System.out.print(l1.size());
            //System.out.println("----" +Math.min(i*2+1, l1.size()));
            l1.add( Math.min( i*2+1, l1.size()), l2.get( i ));
          //  l1.a
        }
        return l1;
    }
}

随着向数组列表中添加元素,数组列表的大小也随之增加。这就是为什么当你添加/删除元素时,你会得到增加/减少的值。

ArrayList是一个集合,不是数组,所以它的size指的是添加到它里面的元素的数量,而不是它内部数组的容量。

ArrayList#size:

返回列表中元素的个数。

因此,每当你向它添加一些东西时,它将增加1。

Add只是向列表中添加另一个值。

如果你一直添加值,它会腾出空间来容纳它们。

相关内容

  • 没有找到相关文章

最新更新