我编写了以下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");
现在我想在设备的屏幕上随机显示其中的四个精灵。但是,我不知道如何使用ArrayMap并决定(随机)绘制哪些精灵。我希望有人可以帮助我。
答案 0 :(得分:0)
尝试以下代码
Random rand = something
int randIndex = rand.nextInt(list.size());
K key = list.get(randIndex);
V value = map.get(key);
答案 1 :(得分: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);
}