我最近一直在学习HashMaps,但我有一个问题似乎无法得到明确的答案。两者的主要区别是-
HashMap hash1 = new HashMap();vs
HashMap<,>hash1 = new HashMap <,> (); //Filled in with whatever Key and Value you want. 我认为当你定义一个HashMap时,它需要键和值。任何帮助都将不胜感激。谢谢。
发布于 2012-10-31 02:09:48
以下是您拥有的选项:
J2SE <5.0样式:
Map map = new HashMap();J2SE 5.0+样式(使用generics):
Map<KeyType, ValueType> map = new HashMap<KeyType, ValueType>();Google Guava样式(更短、更灵活):
Map<KeyType, ValueType> map = Maps.newHashMap();发布于 2012-10-31 01:47:12
你应该看看Java generics,如果你不指定HashMap的类型,键和值都会是Object类型。
因此,如果您想要一个包含Integer键和String值的HashMap,例如:
HashMap<Integer, String> hashMap= new HashMap<Integer, String>();发布于 2012-10-31 01:52:04
通过指定key和value类型,可以通过启用编译时类型强制来实现更高的类型安全性。
这使得编写不会意外混淆键和值类型的代码变得更容易,并减少了必须在代码中显式声明的强制转换的数量。
但是,重要的是要知道,这些类型检查只在编译时进行,即一旦应用程序运行,JVM将允许您对键和值使用任何类型。
https://stackoverflow.com/questions/13144685
复制相似问题