我試圖在 java 中添加加起來達到某個數字的對,我嘗試這樣做的方法之一是在我的 HashMap 中創建一個雙 ArrayList。如果我將 1 和 2 添加到我的串列中,我將得到 3 作為我的密鑰。例如:
HashMap<Integer, ArrayList<ArrayList<Integer>>> map = new HashMap<>(); ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); map.put(list.get(0) list.get(1), new ArrayList<>(list));
但我不斷收到“方法不適用于型別 HashMap<Integer,ArrayList<ArrayList>> 不適用于引數 (int, new ArrayList<>(list))”
我也試過
new ArrayList<>(new ArrayList<>(list))
認為我可能需要先初始化更大的矩陣,但遺憾的是我最終遇到了同樣的錯誤。
uj5u.com熱心網友回復:
這一行:
new ArrayList<>(list)
創造了一個平坦的ArrayList<Integer>,而HashMap正在期待ArrayList<ArrayList<Integer>>。出于同樣的原因,new ArrayList<>(new ArrayList<>(list))還創建了一個扁平的 Integer 串列,因為您只是在做同樣的事情兩次。請參閱API檔案的ArrayList
這是一種適用于二維串列設定的方法:
HashMap<Integer, List<List<Integer>>> map = new HashMap<>();
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
List<List<Integer>> outer = new ArrayList<>();
outer.add(list);
map.put(list.get(0) list.get(1), outer);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/398235.html
