我如何得到一个字符串[] []到一个Arraylist <string [] []>

时间:2015-07-25 15:43:59

标签: java arrays string list arraylist

我有一个二维数组,我想把它转换成一个Arraylist。我该如何组织这样的清单?

例如,当我有数组

String[][] things={{"dog", "cat", "wolf"},
                   {"carrot", "apple", "banana"}};

我想要列表

List<what is proper type?> Galg = ...

这将允许我将行编入索引为x并从索引y的该行获取项目?

2 个答案:

答案 0 :(得分:1)

目前,你可以做到

Galg.add(things);

但是,您可能需要ArrayList<String[]>代替?在这种情况下,您可以使用Arrays.asList

ArrayList<String[]> Galg = new ArrayList<String[]>();
Galg.addAll(Arrays.asList(things));

答案 1 :(得分:1)

看起来你正在寻找i或更好的让接口上的程序而不是实际类型,并使我们的参考更通用(这也意味着灵活,因为它可以处理许多列表,而不仅仅是ArrayList<ArrayList<String>>

ArrayList

或者从Java 7开始我们可以使用菱形运算符缩短它,并推断泛型类型

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

您可以通过

等代码创建它
List<List<String>> list = new ArrayList<>();

并像

一样使用它
String[][] things={{"dog", "cat", "wolf"},{ "carrot", "apple", "banana"}};
List<List<String>> list = new ArrayList<>();
for (String[] row : things){
    list.add(new ArrayList<>(Arrays.asList(row)));
}

尝试将列表视为一维数组。实际上所有数组都是一维的,因为二维数组只是一维数组,其中元素是其他一维数组(你正在嵌套一维数组)。

所以你的数组

System.out.println(list.get(1).get(2));//get row indexed as 1, 
                                       //and from it item indexed as 2

所以我们有一维数组A{ [0] -> B{ [0] -> "dog", [1] -> "cat", [2] -> "wolf" } [1] -> C{ [0] -> "carrot", [1] -> "apple", [2] -> "banana" } } ,其中包含其他一维数组AB

列表可能相同。您可以像嵌套数组一样嵌套它们。

C

所以我们可以拥有List&lt;列表&lt; of String&gt;&gt;写作ListA{ [0] -> ListB{ [0] -> "dog", [1] -> "cat", [2] -> "wolf" } [1] -> ListC{ [0] -> "carrot", [1] -> "apple", [2] -> "banana" } }