java - 为什么 ArrayList 没有使用运行时输入进行初始化?

标签 java

我目前正在开发 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 。

最佳答案

要将List初始化为具有默认值的给定大小,您可以使用nCopies:

List<Integer> list = new ArrayList<>(Collections.nCopies(size,0)); 

现在您的 println 语句将输出:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 10

(假设大小10)。

关于java - 为什么 ArrayList 没有使用运行时输入进行初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57087692/

相关文章:

java - Feign Client 不解析 Query 参数

java - 用java编写的race代码不起作用

java - 在固定方向中间应用程序之间切换 - Android、AndEngine

java - 索引越界异常 - 意外错误

java - 使用 hibernate 注释将枚举映射到表

java - 运行时出现StackOverflow错误

java - 是否可以通过 datastax 驱动程序将 CQL 脚本提交到 cassandra 集群?

java - Java中不同类型变量转换的工具

java - 如何在android私有(private)库中添加jar文件?

java - 从没有 PIN/密码的 PKCS11 智能卡获取证书