gpt4 book ai didi

java - 如何使用 List、ArrayList 和/和 Array 在 Java 中创建二维数组

转载 作者:行者123 更新时间:2023-11-30 06:45:14 25 4
gpt4 key购买 nike

我是 Java 的新手,在寻找执行以下操作的结构时遇到问题。

我想要一个固定长度的数组。每个项目都是一个可变长度的数组(或列表),包含字符串。所以我试过了...

ArrayList<String>[] wordList = new ArrayList[maxWordLength];

我因为“Main.java 使用未经检查或不安全的操作”而受到 Java 的掌掴。当我尝试添加一个项目时,我得到“java.lang.NullPointerException”

wordList[oneWord.length()-1].add(oneWord);

我应该如何创建我的结构来让 Java 满意?

最佳答案

Java 不喜欢泛型数组。 (请参阅 Java 教程中的 Restrictions on Generics。)而是使用列表的列表:

List<List<String>> wordList = new ArrayList<>(maxWordLength);

这将创建一个初始容量为 maxWordLength 的列表,该列表可以包含 String 的列表。初始大小(相对于容量)将为 0。然后您可以将单独的字符串列表添加到 wordList。为避免以后出现 NullPointerException,您应该用空列表填充 wordList 以开始:

for (int i = 0; i < maxWordLength; i++) {
wordList.add(new ArrayList<>());
}

最后,您可以将单词添加到 wordList 中的特定列表:

wordList.get(oneWord.length() - 1).add(oneWord);

这并不强制 wordList 为固定长度,但除此之外应该满足您的要求。

关于java - 如何使用 List、ArrayList 和/和 Array 在 Java 中创建二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49263266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com