怎么高效的从一个有几万个KEY的Map中随机获取一批数据。 我需要java代码
时间: 2024-02-12 10:09:52 浏览: 138
好的,以下是Java代码示例,实现从一个有数万个KEY的Map中随机获取一批数据:
```java
import java.util.*;
public class RandomMapValues {
public static void main(String[] args) {
// 创建一个有数万个KEY的Map
Map<String, String> map = new HashMap<>();
for (int i = 0; i < 10000; i++) {
map.put("key" + i, "value" + i);
}
// 将所有的KEY存入HashSet中
Set<String> keySet = new HashSet<>(map.keySet());
// 随机获取一批数据
int batchSize = 10;
Random random = new Random();
List<String> values = new ArrayList<>();
for (int i = 0; i < batchSize; i++) {
String randomKey = keySet.toArray(new String[keySet.size()])[random.nextInt(keySet.size())];
String value = map.get(randomKey);
values.add(value);
}
System.out.println(values);
}
}
```
此代码中,我们首先创建一个有数万个KEY的Map,并将所有的KEY存储在HashSet中。然后,我们使用`Random`类生成随机数,根据随机数从HashSet中取出对应的key,再根据key从Map中取出对应的value,将所有的value存入一个`List`中,最终输出这个`List`。
阅读全文