我在java中关注HashMap this video。它有below code。
// Create the HashMap
HashMap<String,String> hm = new HashMap<String, String>();
// Put data
hm.put("Katie", "Android, WordPress");
hm.put("Magda", "Facebook");
hm.put("Vanessa", "Tools");
hm.put("Ania", "Java");
hm.put("Ania", "JEE"); // !! Put another data under the same key, old value is overridden
// HashMap iteration
for (String key: hm.keySet())
System.out.println(key+":"+hm.get(key));
所以我编写了下面的代码,用它来练习HashMap(几乎相同的代码)
package hashmap;
import java.util.*;
public class HashMap {
public static void main(String[] args) {
HashMap<String,String> hm = new HashMap<String, String>();
hm.put("Katie", "Android, WordPress");
hm.put("Magda", "Facebook");
hm.put("Vanessa", "Tools");
hm.put("Ania", "Java");
hm.put("Ania", "JEE");
}
}
但是课程没有编译给出错误&#34; 类型HashMap不接受参数 &#34;所以我搜索了got this
的答案其中一个答案说
两个可能的错误:
您使用的是JDK 1.4
您导入的内容不是java.util.Map
所以我导入了java.util.Map
但是netbeans给出了这个错误,并说导入没有使用。然后我java.util.*;
但结果是一样的。我不知道这是我的IDE故障的新手错误。
我的jdk 1.8和Windows 8.1中的Netbeans 8.0.2
答案 0 :(得分:9)
您正在为您的班级HashMap
命名,这会影响java.util.HashMap
。只需将其重命名为其他内容即可。
答案 1 :(得分:2)
您的public class HashMap
自定义类会隐藏java.util.HashMap
,并且您的自定义HashMap
不是通用的,因此new HashMap<String, String>()
对您的自定义类无效。
答案 2 :(得分:0)
我建议不要使用与 HashMap 相同的类名,因为它是Java中的Map Techniques的实现,并且还使用Map.entry接口作为每个循环的对象。我希望下面的代码可以帮助有新HashMap的人。
import java.util.*;
public class QueQue {
public static void main(String[] args) {
HashMap<String, Integer> hm = new HashMap<String, Integer>();
hm.put("Peter", 10);
hm.put("Nancy", 8);
hm.put("Lily", 9);
for (Map.Entry<String, Integer> x : hm.entrySet())//entrySet()=Returns a set of all the entries in the map as Map.Entry objects.
{
System.out.println(" The String Value in Hashmap is " + x.getKey());
System.out.println(" The Integer Value in Hashmap is " +x.getValue());
}
}
}
答案 3 :(得分:0)
使用 existingJavaType,对于那些想要使用 Map 属性的人
{
"existingJavaType": "java.util.Map<String, String>",
"additionalProperties": {
"type" : "string"
}
}