簡體   English   中英

如何在HashMap中的ArrayList中的ArrayList中訪問String?

[英]How to access String within an ArrayList within an ArrayList within a HashMap?

所以我有這個充滿字符串的ArrayList

ArrayList<String> colours = new ArrayList<>();
    colours.add("Red");
    colours.add("Blue");

那個ArrayList被存儲在另一個ArrayList中

ArrayList<ArrayList> container = new ArrayList<>();
    container.add(colors);

並將ArrayList存儲在HashMap中

HashMap<Integer, ArrayList> map = new HashMap<>();
    map.put(1, container);

如何訪問“紅色”? 我試過了

System.out.println(map.get(1).get(0).get(0));

但是它給了

Error: java: cannot find symbol
  symbol:   method get(int)
  location: class java.lang.Object

您不應使用諸如ArrayList<ArrayList>類的原始類型,而應使用諸如ArrayList<ArrayList<String>> (甚至更好的是List<List<String>> )之類的完全“煮熟”的類型。

同樣,代替HashMap<Integer, ArrayList> ,使用HashMap<Integer, ArrayList<ArrayList<String>>> (或者甚至更好, Map<Integer, List<List<String>>> )。

如果進行這些更改,則map.get(1).get(0).get(0)表達式將正確編譯。

嘗試替換為:

  HashMap<Integer, ArrayList> map = new HashMap<>();

帶有:

  HashMap<Integer, List<ArrayList<String>>> map = new HashMap<Integer, List<List<String>>>();

在這種情況下,您可以執行以下操作:

  System.out.println(map.get(1).get(0).get(0));

因為1st get(1)map ,在2nd get(0)為第1 List3th的第二GET(0) List

暫無
暫無

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

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