当前位置: 代码迷 >> java >> 我如何获得String [] []到Arraylist
  详细解决方案

我如何获得String [] []到Arraylist

热度:108   发布时间:2023-07-16 17:40:20.0

我有一个二维数组,我想将其转换为Arraylist。 我应该如何组织这样的清单?

例如当我有数组

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

我想要清单

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

这将使我能够将行索引为x并从索引为y行中获取项目?

目前,您可以

Galg.add(things);

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

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

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

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

或者由于Java 7,我们可以使用菱形运算符将其缩短,然后推断出通用类型

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"
         }
}

因此,我们有一个一维数组A ,其中包含其他一维数组BC

列表也可以。 您可以像嵌套数组一样嵌套它们。

ListA{     
      [0] -> ListB{ 
                   [0] -> "dog", 
                   [1] -> "cat", 
                   [2] -> "wolf"
             }
      [1] -> ListC{ 
                   [0] -> "carrot", 
                   [1] -> "apple", 
                   [2] -> "banana"
             }
}

这样我们就可以得到List <of List >> of String <>> >>写为List<List<String>

  相关解决方案