2013-07-30 46 views
1

我有以下的HashMap: -Key作爲整數和值IntegerArray

HashMap<Integer,Integer[]> possibleSeq = new HashMap<Integer,Integer[] >(); 

我想補充到地圖是這樣的: -

possibleSeq.put(1,{1,2,3,4}); 

有大量的條目,我應該手動輸入: - 我試着這樣做: -

Integer a = 1; 
Integer aArr = {1,2,3,4}; 
    possibleSeq.put(a,aArr); 

但這不是我的我不想創建單獨的Integer變量來存儲鍵和單獨的Integer數組來存儲我的值,即IntegerArray。任何想法?

+0

爲什麼'整數[]'?我很確定你需要'int []'。 –

+0

泛型不適用於基元我認爲 – arynaq

+0

int []是一個數組,它是一個對象,所以沒關係。剛剛嘗試過,效果很好。 – ajb

回答

7

如何:

public static void put(Map<Integer, Integer[]> map, Integer k, Integer... v) { 
    map.put(k, v); 
} 

... 

put(map, 1, 1,2,3,4); 
+0

+1,我喜歡這個,很整潔。你甚至可以擴展'Map'來創建一個更「原生」的api。 –

+1

你可以繼續使用具有'map'作爲字段的構建器,並且可以返回'this'進行鏈接。 –

+1

+1 ....更加優雅!!謝謝 –

1

可以newInteger[]在線:

possibleSeq.put(1, new Integer[]{1,2,3,4}); 
+0

哦是的! ...我的錯!! ... + 1的答案:) –

0
possibleSeq.put(1,{1,2,3,4}); 

這不是有效的Java語法。試試這個:

possibleSeq.put(1, new Integer[]{1,2,3,4}); 
0

{1,2,3,4,5,6}不是數組new Integer[]{1,2,3,4,5}是一個整數數組。

possibleSeq.put(1,new Integer[]{1,2,3,4}); 
+1

使用'new int []'是我認爲的一個好主意;-) – assylias

相關問題