如何随机使用ArrayMap

时间:2017-07-28 14:23:07

标签: android libgdx array-map

我编写了以下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并决定(随机)绘制哪些精灵。我希望有人可以帮助我。

2 个答案:

答案 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);
    }