2017-07-28 122 views
0

我寫了下面ArrayMap:如何使用ArrayMap隨機

ArrayMap<Sprite,String> arrayMap = new ArrayMap<Sprite, String>(); 
     arrayMap.put(sprite, "Rot"); 
     arrayMap.put(sprite1, "Braun"); 
     arrayMap.put(sprite2, "Dunkelblau"); 
     arrayMap.put(sprite3, "Dunkelgrün"); 
     arrayMap.put(sprite4, "Gelb"); 
     arrayMap.put(sprite5, "Hellblau"); 
     arrayMap.put(sprite6, "Hellgrün"); 
     arrayMap.put(sprite7, "Lila"); 
     arrayMap.put(sprite8, "Orange"); 
     arrayMap.put(sprite9, "Rosa"); 

現在我想這些精靈的隨機4顯示設備的屏幕上。但是,我不知道如何使用ArrayMap並隨機決定要繪製哪些精靈。我希望有人能幫助我。

回答

0

什麼時候能按照Android文檔使用ArrayMap此代碼:

注意,此實現並非是適用於可能包含大量 數據結構項目。它通常比傳統的HashMap慢 ,因爲查找需要二進制搜索 ,並添加和刪除要求在數組中插入和刪除 條目。對於容納多達數百個物品的容器, 的性能差異並不顯着,小於50%。

使用Collections.shuffle()

ArrayList<Sprite> keys = new ArrayList(arrayMap.keySet()); 
    Collections.shuffle(keys); 
    for (int i = 0; i < 4; i++) { 
     Sprite key = keys.get(i); 
     String value = arrayMap.get(key); 
    } 
+0

如果我的那種類型,鍵集紅色。錯誤消息:「無法解析方法'keySet()'。 – user8340536

+0

錯誤仍然存​​在,但我不知道爲什麼... – user8340536

+0

我懷疑你使用的是LibGDX'ArrayMap'而不是Android:https:/ /libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/utils/ArrayMap.html。在這種情況下,而不是'arrayMap.keySet()'使用'arrayMap.keys()' –

0

試試下面

Random rand = something 
int randIndex = rand.nextInt(list.size()); 
K key = list.get(randIndex); 
V value = map.get(key);