簡體   English   中英

我如何獲得String [] []到Arraylist <String[][]>

[英]how dow i get a String[][] to an Arraylist<String[][]>

我有一個二維數組,我想將其轉換為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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM