有没有办法在Java中随机获取HashMap的值?
原文由 Varuna 发布,翻译遵循 CC BY-SA 4.0 许可协议
有没有办法在Java中随机获取HashMap的值?
原文由 Varuna 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于要求仅要求从 HashMap
中获取随机值,因此方法如下:
HashMap
有一个 values
方法返回地图中值的 Collection
。Collection
用于创建 List
。size
method is used to find the size of the List
, which is used by the Random.nextInt
method to get a random index of the List
。List
get
方法中检索值。执行:
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("Hello", 10);
map.put("Answer", 42);
List<Integer> valuesList = new ArrayList<Integer>(map.values());
int randomIndex = new Random().nextInt(valuesList.size());
Integer randomValue = valuesList.get(randomIndex);
这种方法的好处在于所有方法都是 通用 的——不需要类型转换。
原文由 coobird 发布,翻译遵循 CC BY-SA 2.5 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
这有效:
如果您希望随机值是
Object
以外的类型,只需在最后一行添加一个强制转换。因此,如果myHashMap
被声明为:最后一行可以是:
下面 不起作用,
Set.toArray()
总是返回一个数组Object
s,它不能被强制转换成一个数组Map.Entry