java - 有没有办法在 Java 中随机获取 HashMap 的值?

标签 java collections hashmap

有没有办法在Java中随机获取HashMap的值?

最佳答案

这行得通:

Random generator = new Random();
Object[] values = myHashMap.values().toArray();
Object randomValue = values[generator.nextInt(values.length)];

如果您希望随机值是 Object 以外的类型,只需在最后一行添加一个强制转换。所以如果 myHashMap 被声明为:

Map<Integer,String> myHashMap = new HashMap<Integer,String>();

最后一行可以是:

String randomValue = (String) values[generator.nextInt(value.length)];

下面的不起作用Set.toArray()总是返回一个Object组成的数组,不能强制放入 Map.Entry 数组中。

Random generator = new Random();
Map.Entry[] entries = myHashMap.entrySet().toArray();
randomValue = entries[generator.nextInt(entries.length)].getValue();

关于java - 有没有办法在 Java 中随机获取 HashMap 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/929554/

相关文章:

java - 在 JSP 中获取 Map<String, List<String>> 中列表的第一个元素

C# 字典如何从文件中读取键=值

JavaFX 内联 CSS 悬停效果

java - JSP 中的空格

collections - 如何从常规集合的 collect() 方法中调用具有多个参数的闭包?

java - Set 中的 Get 和 Set 方法

java - 使用sincedb删除通过logstash传输的日志,或使用替代解决方案

Java Socket 文件和目录列表名称显示在客户端

java - 基于多连接的ArrayList排序

java - HashMap 对于不同的键是线程安全的吗?