java - java - 如何创建一个包含随机键和值的映射java?
问题描述
我想创建一个将生成随机数据的地图(它将为每个键生成一个随机值)。该地图旨在进行双打,这是来自练习,如果我无法使用文件中包含数据的先前地图(mapOfEarth)我已经深入考虑过但无法获得正确答案。帮助?我知道地图的大小,但不知道如何生成这些值。我尝试了以下代码:
public void generateMap(double resolution) {
String altitude;
if (resolution == 1) {
mapOfEarth = new HashMap<>(64800);
} else if (resolution == 0.5) {
mapOfEarth = new HashMap<>(259200);
} else if (resolution == 2) {
mapOfEarth = new HashMap<>(16200);
解决方案
导入库commons-lang3
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
并考虑使用下面的代码`
public static void main(String[] args) {
int numberOfElements = RandomUtils.nextInt(0, 100);
boolean useLetters = RandomUtils.nextBoolean(), //
useNumbers = RandomUtils.nextBoolean();
int keyLength = RandomUtils.nextInt(1, 10), //
valueLength = RandomUtils.nextInt(1, 10);
Map<String, String> map = generateMap( //
numberOfElements, //
useLetters, //
useNumbers, //
keyLength, //
valueLength //
);
for (String key : map.keySet()) {
System.out.println("key = " + key + "; value = " + map.get(key));
}
}
private static Map<String, String> generateMap( //
int numberOfElements //
, boolean useLetters //
, boolean useNumbers //
, int keyLength //
, int valueLength //
) {
Map<String, String> result = new HashMap<String, String>();
for (int i = 0; i < numberOfElements; i++) {
String key = RandomStringUtils.random(keyLength, useLetters, useNumbers);
String value = RandomStringUtils.random(valueLength, useLetters, useNumbers);
result.put(key, value);
}
return result;
}
`
推荐阅读
- c - 如何在我的 C 限制下检查用户的有效输入?
- ios - 从多个 Mac 编译 iOS 应用程序
- php - 在 TCPDF 中未内联的图像
- reactjs - React Native:当我在 Xcode 中单击字体文件时,“无法识别的字体系列”错误消失了
- hive - AZURE Blob 存储上的 Hive ORC ACID 表可用于 MERGE
- powerbi - Power BI 如果列等于此值且大于此值,则为百分比
- regex - 如何递归编辑大量文件,将自己的部分路径添加到某行?
- postgresql - 如何使用 JDBC 从 postgres 读取 2300 万条记录?我必须从 postgres 中的表中读取并写入另一个表
- javascript - 如何检查数组中是否存在没有名称的对象?
- c# - [dotNET Core]将模型传递给视图 -> 将复选框与 POST 方法形式的数据绑定 -> 将整个模型发送到控制器