首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建HashMaps的不同方式

创建HashMaps的不同方式
EN

Stack Overflow用户
提问于 2012-10-31 01:41:13
回答 4查看 67.5K关注 0票数 15

我最近一直在学习HashMaps,但我有一个问题似乎无法得到明确的答案。两者的主要区别是-

代码语言:javascript
复制
HashMap hash1 = new HashMap();

vs

代码语言:javascript
复制
HashMap<,>hash1 = new HashMap <,> (); //Filled in with whatever Key and Value you want. 

我认为当你定义一个HashMap时,它需要键和值。任何帮助都将不胜感激。谢谢。

EN

回答 4

Stack Overflow用户

发布于 2012-10-31 02:09:48

以下是您拥有的选项:

J2SE <5.0样式:

代码语言:javascript
复制
 Map map = new HashMap();

J2SE 5.0+样式(使用generics):

代码语言:javascript
复制
 Map<KeyType, ValueType> map = new HashMap<KeyType, ValueType>();

Google Guava样式(更短、更灵活):

代码语言:javascript
复制
 Map<KeyType, ValueType> map = Maps.newHashMap();
票数 21
EN

Stack Overflow用户

发布于 2012-10-31 01:47:12

你应该看看Java generics,如果你不指定HashMap的类型,键和值都会是Object类型。

因此,如果您想要一个包含Integer键和String值的HashMap,例如:

代码语言:javascript
复制
    HashMap<Integer, String> hashMap= new HashMap<Integer, String>();
票数 11
EN

Stack Overflow用户

发布于 2012-10-31 01:52:04

通过指定keyvalue类型,可以通过启用编译时类型强制来实现更高的类型安全性。

这使得编写不会意外混淆键和值类型的代码变得更容易,并减少了必须在代码中显式声明的强制转换的数量。

但是,重要的是要知道,这些类型检查只在编译时进行,即一旦应用程序运行,JVM将允许您对键和值使用任何类型。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13144685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档