java:java中Map类有什么作用,具体怎么用呢
java:java中Map类有什么作用,具体怎么用呢??
2007-11-11 11:59
Java Map 集合类简介
作者:Jack Shirazi
了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map。
本文相关下载:
· Jack 的 HashMap 测试
· Oracle JDeveloper 10g
java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。 从概念上而言,您可以将 List 看作是具有数值键的 Map。 而实际上,除了 List 和 Map 都在定义 java.util 中外,两者并没有直接的联系。本文将着重介绍核心 Java 发行套件中附带的 Map,同时还将介绍如何采用或实现更适用于您应用程序特定数据的专用 Map。
了解 Map 接口和方法
Java 核心类中有很多预定义的 Map 类。 在介绍具体实现之前,我们先介绍一下 Map 接口本身,以便了解所有实现的共同点。 Map 接口定义了四种类型的方法,每个 Map 都包含这些方法。 下面,我们从两个普通的方法(表 1)开始对这些方法加以介绍。
表 1: 覆盖的方法。 我们将这 Object 的这两个方法覆盖,以正确比较 Map 对象的等价性。
equals(Object o)
比较指定对象与此 Map 的等价性
hashCode()
返回此 Map 的哈希码
Map 构建
Map 定义了几个用于插入和删除元素的变换方法(表 2)。
表 2: Map 更新方法: 可以更改 Map 内容。
clear()
从 Map 中删除所有映射
remove(Object key)
从 Map 中删除键和关联的值
put(Object key, Object value)
将指定值与指定键相关联
clear()
从 Map 中删除所有映射
putAll(Map t)
将指定 Map 中的所有映射复制到此 map
尽管您可能注意到,纵然假设忽略构建一个需要传递给 putAll() 的 Map 的开销,使用 putAll() 通常也并不比使用大量的 put() 调用更有效率,但 putAll() 的存在一点也不稀奇。 这是因为,putAll() 除了迭代 put() 所执行的将每个键值对添加到 Map 的算法以外,还需要迭代所传递的 Map 的元素。 但应注意,putAll() 在添加所有元素之前可以正确调整 Map 的大小,因此如果您未亲自调整 Map 的大小(我们将对此进行简单介绍)
相关文档:
在和谐的网络世界中,有一个神秘的乐园,叫CaoLiu社区(由于和谐,用了拼音),这是一个传说的所在,其入口如海市蜃楼一般不可捉摸,有人说这是为了给世人造成一种神秘感,也有人说,这是为了躲避神兽河蟹的追杀。有幸,我找到了这个入口。但是不幸的是,TMD注册账号还要邀请码。
还好,这个世 ......
OOP的特性主要有:1、封装;2、继承;3、多态。下面从这几个方面具体阐述。
1、封装
封装能将类的具体信息隐藏起来,使得数据得到保护。其具体实施主要是依靠访问控制机制权限,其权限主要有四种:1、private;2、default(C++没有这种权限);3、protected;4、public。在这四种权限下的数据在外界的可见性不同。Private ......
public ActionForward backUpAction(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
&n ......
项目需要分析整个系统的上线运行性能,所以现在离上线还早,但是必须模拟并发现以后可能出现的性能问题.
两个比较好的工具:JProbe,yourkit java profile,刚开始装了Jprobe的eclipse插件,后来发现这东西太复杂,而且还报不支持jdk 1.6.没法发看到大多数网友选择yourkit,所以也下了来,毕竟不大,结果发现他有很完整的文档和flash ......
public class TextDemo {
public static void main(String[] args) {
RunnableEemo r1 = new RunnableEemo();
r1.REemo(r1);
System.out.println(r1.print());
}
}
class RunnableEemo extends ThreadRun implements Runnable {
Thread t2 = null;
public void REemo(RunnableEemo r1) {
Thread t1 = ......