Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么';ArrayList的ensureCapacity()方法是否会增加列表的大小?_Java_Arraylist_Size - Fatal编程技术网

Java 为什么';ArrayList的ensureCapacity()方法是否会增加列表的大小?

Java 为什么';ArrayList的ensureCapacity()方法是否会增加列表的大小?,java,arraylist,size,Java,Arraylist,Size,当我执行下面的代码时,我得到的输出是1。为什么会发生这种情况 import java.util.*; class Output { public static void main(String args[]) { ArrayList obj = new ArrayList(); obj.add("A"); obj.ensureCapacity(3); System.out.println(obj.size()); } } 指实际在列表中的元素数,而不是

当我执行下面的代码时,我得到的输出是
1
。为什么会发生这种情况

import java.util.*;

class Output {
  public static void main(String args[]) {
    ArrayList obj = new ArrayList();
    obj.add("A");
    obj.ensureCapacity(3);
    System.out.println(obj.size());
  }
}
指实际在
列表中的元素数,而不是支持数组的大小

public int size()

返回此列表中的元素数

实现
ArrayList
背后的想法是,您不应该关心大小到底有多大,而应该只关心大小是否足够大(由控制),而不是太大(由控制)。但大多数情况下,您不需要知道或关心支持数组的大小。

指的是实际在
列表中的元素数量,而不是支持数组的大小

public int size()

返回此列表中的元素数

实现
ArrayList
背后的想法是,您不应该关心大小到底有多大,而应该只关心大小是否足够大(由控制),而不是太大(由控制)。但大多数时候,您不需要知道或关心支持数组的大小。

size()
告诉您数组列表中的元素数。另一方面,通过
ensureCapacity(n)
告诉arraylist您将至少拥有
n
元素

Arraylist是动态增长的,比如说它的初始容量是
x
,一旦这个容量即将超过,它就会创建一个大小为
2x
的新数组。如果这也即将结束,则
4x
。当数组大小加倍时,会产生开销,您必须复制所有元素

但是在开始时,如果您知道您将拥有至少10x
元素,那么您可以要求arraylist通过使用
ensureCapacity(10x)
确保至少10x
容量,这样您就可以避免所有开销。

size()
告诉您arraylist中的元素数量。另一方面,通过
ensureCapacity(n)
告诉arraylist您将至少拥有
n
元素

Arraylist是动态增长的,比如说它的初始容量是
x
,一旦这个容量即将超过,它就会创建一个大小为
2x
的新数组。如果这也即将结束,则
4x
。当数组大小加倍时,会产生开销,您必须复制所有元素

但是在开始阶段,如果您知道您将拥有至少10个
10x
元素,那么您可以要求arraylist通过使用
ensureCapacity(10x)
确保至少
10x
容量,这样您就可以避免所有开销