Java 8中的Default ArrayList大小是多少

时间:2017-06-08 18:24:45

标签: java arraylist java-8 resize size

  1. java 8中arraylist的默认大小是多少?据我记得并在google上搜索过,我发现默认情况下它是10,但是当我输出以下代码的输出时,它正在打印0.在java 8中是否发生了与此相关的更改?

    ArrayList<String> arrList = new ArrayList<String>();
    System.out.println("size:"+arrList.size());
    
  2. 我的第二个问题是:当我在列表中添加一些元素时,那么大小会比以前的大小增加1.5倍,还是只会增加1倍?

  3. PS:有没有办法知道arraylist对象的当前容量?

2 个答案:

答案 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。如果大小等于容量,那么容量将增加。