首页 > 解决方案 > 为什么 ArrayList 没有使用运行时输入进行初始化?

问题描述

我目前正在研究 Java Collection Framework ,并创建了一个大小为 10 的列表,但程序仍然提示我列表大小是,如果列表已处理,它当然0会抛出IndexOfBoundException

我已经搜索过这个,但我不知道为什么它会发生在我身上

    int size =sc.nextInt();
    List<Integer> list = new ArrayList<Integer>(size);   
    System.out.println(list+" "+list.size());

我希望输出为 [0,0,0,0,0,0,0,0,0,0] 10 但输出为 [] 0 。

标签: java

解决方案


查看文档,它说创建了具有指定容量的空列表。

public ArrayList(int initialCapacity)

构造一个具有指定初始容量的空列表。

这种能力是什么?为什么有用?

每个 ArrayList 实例都有一个容量。容量是用于存储列表中元素的数组的大小。它总是至少与列表大小一样大。随着元素被添加到 ArrayList,它的容量会自动增长。除了添加一个元素具有恒定的摊销时间成本这一事实之外,没有指定增长策略的细节。


推荐阅读