java - 为什么 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 。
解决方案
查看文档,它说创建了具有指定容量的空列表。
public ArrayList(int initialCapacity)
构造一个具有指定初始容量的空列表。
这种能力是什么?为什么有用?
每个 ArrayList 实例都有一个容量。容量是用于存储列表中元素的数组的大小。它总是至少与列表大小一样大。随着元素被添加到 ArrayList,它的容量会自动增长。除了添加一个元素具有恒定的摊销时间成本这一事实之外,没有指定增长策略的细节。
推荐阅读
- json - 如何维护 JSON 对象中值的顺序?
- python - 如何修正图表
- ios - Swift - iOS:在任何特殊字符之前或之后删除字符串中的空格
- python - 从本地子文件夹导入文件
- sql-server - 表的一列(主键)的两行是否有可能具有相同的字符/值和相同的外键(另一列)
- xslt - 在 XSLT 中解析 940 仓库 X12
- javascript - ._ 在 javascript 中是什么?
- javascript - FullCalendar Scheduler 时间线在 rails 视图中不起作用(rails 5.2)
- redux - 我可以省略减速器吗?
- ruby-on-rails - 在 SmartListing Gem 中使用全文搜索进行分组和搜索时出现 PostgreSQL 错误