Java 创建哈希映射的不同方法
我最近一直在学习HashMaps,但我有一个问题似乎无法得到明确的答案。两者之间的主要区别-Java 创建哈希映射的不同方法,java,hashmap,Java,Hashmap,我最近一直在学习HashMaps,但我有一个问题似乎无法得到明确的答案。两者之间的主要区别- HashMap hash1 = new HashMap(); vs hashmaphhash1=newhashmap()//填入您想要的任何键和值。 我认为定义HashMap时需要键和值。任何帮助都将不胜感激。谢谢。您应该看看,如果不指定HashMap的类型,则key和value都将是Object类型 因此,如果您想要一个包含Integer键和String值的HashMap,例如: Hash
HashMap hash1 = new HashMap();
vs
hashmaphhash1=newhashmap()//填入您想要的任何键和值。
我认为定义HashMap时需要键和值。任何帮助都将不胜感激。谢谢。您应该看看,如果不指定HashMap的类型,则key和value都将是Object
类型
因此,如果您想要一个包含Integer
键和String
值的HashMap,例如:
HashMap<Integer, String> hashMap= new HashMap<Integer, String>();
HashMap HashMap=newhashmap();
指定键
和值
类型可以通过启用编译时键入强制来实现更大的类型安全性
这使得编写不会意外混淆键和值类型的代码变得更容易,并减少了必须在代码中显式声明的强制转换数量
但是,重要的是要知道这些类型检查仅在编译时进行,也就是说,一旦应用程序运行,JVM将允许您对键和值使用任何类型 -
泛型可以隐含到类、接口、方法、变量等。。但是使用它的最重要的原因是使集合
更加类型安全
-泛型
确保只有特定类型的对象进入和退出集合
-此外,值得一提的是,有一个过程称为擦除
->擦除
是编译器从泛型类和接口中删除类型参数
和类型参数
的过程,使其与编写时不使用泛型的代码向后兼容
所以
HashMap map=newhashmap()代码>
变成原始类型
HashMap map=newhashmap()代码>这些是您的选项:
J2SE+1对编译时和运行时的差异进行了很好的解释。另外,将变量声明为映射也是一个好习惯-请快速查看以获取更多信息。Java,并感谢您的帖子。您有没有理由不将任何答案标记为已接受的答案?欢迎@StaticGamedude,你能考虑把它当作答案吗?有用选票下面的复选标记:)
HashMap<Integer, String> hashMap= new HashMap<Integer, String>();
Map map = new HashMap();
Map<KeyType, ValueType> map = new HashMap<KeyType, ValueType>();
Map<KeyType, ValueType> map = Maps.newHashMap();