gpt4 book ai didi

java - 如何从 map 中随机读取一对直到它为空(Java)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:37 26 4
gpt4 key购买 nike

我在我的类中定义了一个 Map 来存储 position ---> rule,例如:

1--->police
2--->teacher
3--->police
4--->student

我希望每次有玩家加入我的游戏时,我可以从 map 上随机读取一对并得到他/她的position-->rule,然后当另一个玩家加入时,得到另一对(独特的)。有什么好的方法可以实现吗?

我能弄清楚的是:

  1. 将 map 转换为实体集
  2. 将集合转化为列表
  3. Collections.shuffle(list);

但我认为这不是一个好主意。

附言:

  1. key 在未来不是整数,但现在是。
  2. 每个玩家都必须拥有唯一对。
  3. 我不想更改我的 map ,它仍将被使用。

最佳答案

对于您示例中的连续整数键,您可以简单地获得一个随机键:

Random random = new Random();
map.get(random.nextInt(map.size()+1)); // this doesn't ensure uniqueness

如果键不是整数,您可以将键存储在列表中:

Random random = new Random();
List<Key> keyList = new ArrayList<Key>();
keyList.addAll (map.keySet());
int index = random.nextInt(keyList.size());
key = keyList.get (index);
keyList.remove (index); // this ensures eniqueness by removing the used keys
value = map.get(key);

关于java - 如何从 map 中随机读取一对直到它为空(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24839648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com