java - 用值初始化的多维 ArrayList

标签 java arrays arraylist

我是编码新手。我的老师最近介绍了数组和数组列表。我有一个像这样的多维数组:

private String[][] pods = {{"pod1", ""}, {"pod2", ""}, {"pod3", ""}, {"pod4", ""}};

我想将其切换为数组列表,因为我需要编辑其中的信息。

如果使用多维 ArrayList,我该怎么做?我想用上面的信息初始化它。

我已经试过了:

private ArrayList<ArrayList<String>> pods = new ArrayList();

每当我将内容放在括号之间时,我都会收到无效的运算符错误。

顺便说一句,以防万一有人想知道 - 这不是类作业。这是我自己尝试的东西。

谢谢。

最佳答案

首先,您的方法只对了一半。

对于二维数组,您可以使用 ArrayListArrayList

然而...

您正在将 List 初始化为原始类型。从 Java 7 开始,您只需将赋值更改为菱形类型即可进行推理:

List<List<String>> pods = new ArrayList<>();

在早期版本中:

List<List<String>> pods = new ArrayList<List<String>>();

您还需要填充列表。

为此,您需要进行一些迭代。

这是一个完整的 Java 7 示例(使用 List 作为“接口(interface)代码”指南的建议)。

String[][] info = {{"pod1", ""}, {"pod2", ""}, {"pod3", ""}, {"pod4", ""}};
List<List<String>> pods = new ArrayList<>();
for (String[] level1: info) {
    List<String> list = Arrays.asList(level1);
    // use this instead if you intend to modify the inner lists
    // List<String> list = new ArrayList<>(Arrays.asList(level1));
    pods.add(list);
}
System.out.println(pods);

输出

[[pod1, ], [pod2, ], [pod3, ], [pod4, ]]

现在,一些 Java 8 魔力:

String[][] info = {{"pod1", ""}, {"pod2", ""}, {"pod3", ""}, {"pod4", ""}};
List<List<String>> pods = 
    Arrays.stream(info)
        .map((a) -> Arrays.asList(a))
        // use this instead if you intend to modify the inner lists
        // .map((a) -> Arrays.stream(a).collect(Collectors.toList()))
        .collect(Collectors.toList());
System.out.println(pods);

(相同)输出

[[pod1, ], [pod2, ], [pod3, ], [pod4, ]]

关于java - 用值初始化的多维 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33285739/

相关文章:

java - 为什么 HBase 将值存储为字节数组而不是类型值(如 String、Long 等)

java - 如何针对可能为空的属性编写带有 "order by"子句的 JPA 查询

java - (Java) 在另一个数组中搜索一个数组的值的索引

arrays - 如何检查数组中的所有值是否相同?

javascript - 如何使用正则表达式将字符串 "folder/lower-case-with-dash"转换为 "folderLowerCaseWithDash"(即驼峰格式)?

java - 使用 Selenium DataProvider 运行多个测试

java - java中大量整数流的统计

java - 如何实现具有泛型返回类型和泛型参数的泛型方法?

java 从 csv 文件中读取并将其信息存储到 ArrayList<class>

java - 如何检查两个字符串是否递归地生成第三个字符串