java - 如何创建空 map 并设置默认值

标签 java algorithm collections

我想在 java 中创建一个空 map ,然后将默认值设置为 0。如果下面的代码正确,请告诉我。

实际上,我正在尝试将 Python 代码转换为 Java。为了便于理解,我在这里粘贴 Python 代码

Java 代码: 1个 2个 3个 4个 5个 6个 7 8个 9 10 11

import random

howMany = random.randint(0,1000)
stats = {} // EMPTY DICTIONARY
for i in range(howMany):
   value = random.randint(0,500)
   stats.setdefault(value,0)  // Setting the default value to 0 here
   stats[value]+=1
for item in stats:
   if stats[item] > 1:
       print item

在 java 的情况下,如果我这样做:

Java Code:


Map<String, Date> s = Collections.emptyMap();

那我就不得不提菱形中的String和Date了。空 map 怎么办?

这是我到目前为止编写的 Java 代码:

import java.util.Random;


public class PythonToJava {
    public static void main(String[] args) {    
        Random rm = new Random();

        int i = rm.nextInt(1000);

        System.out.println("Random Number Generated is: " + i);
        for (int j = 0; j<i; j++){        
            int value = rm.nextInt(500);
        System.out.println("The value of VALUE is " + value);
        }
    }
}

请澄清。

谢谢!

最佳答案

正如评论中所述,Java 没有像其他一些语言那样的默认映射。然而 apache commons-collections项目有一个 DefaultedMap当键不是 map 的一部分时返回默认值。如果您不想使用第三方库,那么您需要自行检查此键的值是否已经存在,以及何时不使用零值创建它。

关于java - 如何创建空 map 并设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16450372/

相关文章:

java - 自定义响应头 Jersey/Java

c++函数返回 vector 中的最小正整数

java - 查看fxml里面的逻辑(特别是迭代)

scala - 如何在 Scala 中以声明方式创建列表?

java - TCP Socket接收和处理多个消息

java - OneToMany关系错误: Field 'XX' doesn't have a default value

algorithm - 偏序线性扩展的传递归约

Python 算法挑战?

c# - 用 IEnumerable<> 源填充 Dictionary<>

java - 如何克服异常——在java中发送电子邮件时字符串 ``中的非法地址