2014-01-18 39 views
0

所以我一直在搜索和搜索,但似乎無法找到如何創建我在Python中創建的字典並在Java中創建類似的東西。我試着看ArrayList和列表等,但無濟於事。Java Dictionary like like Python

PIECESDICT = {1: [[0,0], [0,1], [0,2], [1,1]], 2: [[0,0], [1,0], [0,1]], 3: [[0,0], [0,1], [1,1]], 4: [[0,0], [0,1], [1,0], [1,1]], 5: [[0,0], [1,0], [2,0]]} 

因此,這裏是我的詞典,而且基本上他們做的是剛剛從座標(0,0)是每件的左上點說。它本身就是一件作品。

例如片1會是什麼樣子:

0 
00 
0 

同樣一塊2會是什麼樣子:

00 
0 
+1

你可以嘗試一個HashMap。 – Christian

+0

您能否向我解釋如何使用類似於字典的方法? – KodyVanRy

+0

如果您一整天都在搜索,則應該按照搜索條件進行操作。第一次谷歌命中'Java字典'是(被承認已經過時)[Dictionary類](http://docs.oracle.com/javase/7/docs/api/java/util/Dictionary.html),並閱讀類描述會指向「Map」。搜索'Java地圖'產生[本教程](http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html)作爲第二打,這是對該主題的廣泛介紹。但實際上,如果你所有的密鑰都是從1開始的數字,就像在你的例子中那樣,你可以使用一個列表... – l4mpi

回答

4

你可以嘗試HashMap

你可以使用它的方式:

Map<Integer, Integer[][]> map = new HashMap<Integer, Integer[][]>(); 
Integer[][] v1 = { { 0, 0 }, { 0, 1 }, { 0, 2 }, { 1, 1 } }; 
map.put(1, v1); 
+0

或者只是'Map '... – assylias

2

怎麼樣的HashMap?例如: : map.put(「name」,「value」);

+0

是的,一個Hashmap可以工作,我喜歡這個想法,但是我怎麼包含'[[0 ,0],[0,1],[0,2],[1,1]]' – KodyVanRy

+0

您可以選擇值中的對象是什麼..您可以決定它將數組的點(你應該定義) – ItayB

3

它看起來像你想要的... HashMapArrayLists某種配對或座標對象。

如果你有一個Pair類接受的座標參數(如new Pair(0, 0)),那麼你可以做類似如下:

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

ArrayList<Pair> first = new ArrayList<Pair>(); 
first.add(new Pair(1, 2)); 
first.add(new Pair(3, 4)); 

map.put(1, first); 

// map == {1: [[1,2], [3,4]]} 

HashMap還可以接受(而不是Integer)一String作爲內部列表的關鍵。

+0

謝謝你的理解!我不知道爲什麼我以前沒有這樣看過。我最初看起來更像一個ArrayList ArrayList的ArrayList,所以感謝所有幫助過的人。 – KodyVanRy