如何创建空映射并设置默认值

时间:2013-05-08 21:17:42

标签: java algorithm collections

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

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

Java代码: 1 2 3 4 五 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();

然后我将不得不提到钻石中的字符串和日期。我怎么做空地图?

这是我到目前为止编写的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);
        }
    }
}

请澄清。

谢谢!

1 个答案:

答案 0 :(得分:1)

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