java 8中arraylist的默认大小是多少?据我记得并在google上搜索过,我发现默认情况下它是10,但是当我输出以下代码的输出时,它正在打印0.在java 8中是否发生了与此相关的更改?
ArrayList<String> arrList = new ArrayList<String>();
System.out.println("size:"+arrList.size());
我的第二个问题是:当我在列表中添加一些元素时,那么大小会比以前的大小增加1.5倍,还是只会增加1倍?
PS:有没有办法知道arraylist对象的当前容量?
答案 0 :(得分:2)
初始List
的{{1}}为零(除非您另行指定):
capacity
当它必须增长时,使用它:
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
int newCapacity = oldCapacity + (oldCapacity >> 1)
除以2,因此增长 1.5
要注意的一件事是,一旦删除元素,容量就不会改变。如果您需要缩小使用oldCapacity >> 1
。
trimToSize
实际上是正确的,但是当您将一个元素放入10
时 :
ArrayList
答案 1 :(得分:1)
我认为你的容量令人困惑。大小是您放入arrayList
的元素数量,而容量是arrayList
可以采用的最大元素数量。一旦达到最大值,容量就会加倍(如果我没记错的话)。
因此,当您在arrayList
中添加元素时,大小将始终增加1。如果大小等于容量,那么容量将增加。