如果你一直添加值,它会腾出空间来容纳它们。
我有下面的代码,我试图理解一件事。为什么这句话…
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只是向列表中添加另一个值。