java中的HashMap类是做啥用的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的HashMap类是做啥用的?相关的知识,希望对你有一定的参考价值。

解决什么问题的时候需要用到HashMap类,这个类的功能是实现什么?

java中HashMap类是用来存储具有键值对特征的数据。例如现在需要按照员工号来存储大量的员工信息,那么就可以使用HashMap,将员工号作为键,员工对象作为值来存储到HashMap中,其中使用HashMap时需要注意,HashMap是线程不同步的,多线程使用时,需要注意;并且HashMap允许null值作为键和值。 参考技术A 最佳答案
你好 Map 是一种数据结构,用来实现key和value 的映射。通过Key可以找到Value。实现类包括HashMap,LinkedHashMap,TreeMap
HashMap 是以数组的结构,用哈希函数值跟数组的长度做位与运算,获取对应数组的索引。浏览key值时,不保证顺序。
参考技术B 你可以参考Java的帮助文档来写代码。我给你写几个例子吧:

Data data1 = new Data(); //假设Data是我们自己定义的类
Data data2 = new Data();
HashMap hm = new HashMap();
hm.put(new Integer(1),data1);
hm.put(new Integer(2),data2);

这样你就可以把data1,data2存进HashMap了。
HashMap和ArrayList的区别是: HashMap 是以键-值的形式存储数据的(就像我例子中的,‘1’就是键,data1就是值);而ArrayList则是用数组的方式存数据的。
参考技术C HashMap是一种键值对的集合,表现形式为key=value,其中key是唯一的,value可以重复,如果在开发中用到需要这种表现形式的话可以用HashMap追问

可以举一个key=value 其中key是唯一的,value可以重复的 实例吗

追答

最常见的就是用HashMap做通讯录( 用户名=联系号码 )以及用J2SE模拟ATM系统( 卡号=用户 )

本回答被提问者采纳
参考技术D 集合数组,基本不用。除非程序设计到大量的数据库信息传递时,可考虑应用此类

web.xml 中的资源引用是做啥用的?

【中文标题】web.xml 中的资源引用是做啥用的?【英文标题】:What is resource-ref in web.xml used for?web.xml 中的资源引用是做什么用的? 【发布时间】:2010-05-22 11:54:52 【问题描述】:

我只是想知道您何时/为什么要在您的 web.xml 文件中定义 <resource-ref> 元素?

我原以为它会使用 JNDI 在您的 Web/应用服务器中定义,然后在您的 Java 代码中查找 JNDI 引用?

resource-ref 定义对我来说似乎有点多余,我想不出它什么时候有用。示例:

<resource-ref>
  <description>Primary database</description>
  <res-ref-name>jdbc/primaryDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>CONTAINER</res-auth>
</resource-ref>

【问题讨论】:

【参考方案1】:

您始终可以直接通过容器中配置的 JNDI 名称来引用应用程序中的资源,但如果您这样做,本质上就是将容器特定名称连接到您的代码中。这有一些缺点,例如,如果您以后出于某种原因想要更改名称,则需要更新所有应用程序中的所有引用,然后重新构建和重新部署它们。

&lt;resource-ref&gt; 引入了另一层间接:在 web.xml 中指定要使用的名称,并根据容器在 container- 中提供绑定具体的配置文件。

所以会发生什么:假设您要查找java:comp/env/jdbc/primaryDB 名称。容器发现 web.xml 有一个用于 jdbc/primaryDB&lt;resource-ref&gt; 元素,因此它将查看容器特定的配置,其中包含类似于以下内容:

<resource-ref>
  <res-ref-name>jdbc/primaryDB</res-ref-name>
  <jndi-name>jdbc/PrimaryDBInTheContainer</jndi-name>
</resource-ref>

最后返回jdbc/PrimaryDBInTheContainer名下注册的对象。

想法是在 web.xml 中指定资源具有将 developer 角色与 deployer 角色。换句话说,作为开发人员,您不必知道在生产环境中实际调用的所需资源是什么,而作为部署应用程序的人,您将有一个很好的名称列表来映射到实际资源。

【讨论】:

恕我直言,它不仅仅是分离角色。这个想法是,您不能假设在服务器上可以使用 jndi 名称,因此您需要一种方法将应用程序中使用的名称映射到部署者选择的“真实”JNDI 名称。 这一定是基本的,因为我用谷歌找不到它,但是如果我想查找“java:comp/env/jdbc/primaryDB”,那么为什么是 res-ref-名称“jdbc/primaryDB”? 据我所知,“jndi-name”元素不是标准 web.xml 的一部分,而是特定供应商部署描述符的一部分。 @RaviParekh,他提到了“特定于容器的配置”,它可能是 jboss-web.xml 或 weblogic.xml 或任何其他供应商特定的部署描述符文件 如果某些容器使用jndi-name 来映射间接,但这不是标准,标准是什么? Tomcat seems to require both names match 让我们回到最初的问题:有什么意义?

以上是关于java中的HashMap类是做啥用的?的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.SecurityManager 中的初始化字段是做啥用的?

web.xml 中的资源引用是做啥用的?

SetPixelFormat() 中的 PIXELFORMATDESCRIPTOR 参数是做啥用的?

Laravel 中的 `HtmlString` 是做啥用的?

TTF/OTF 头表中的 checkSumAdjustment 是做啥用的?

Visual Studio 中的“stdafx.h”是做啥用的?