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 的大小(我们将对此进行简单介绍)
相关文档:
public ActionForward backUpAction(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
&n ......
Java IO的一般使用原则:
一、按数据来源(去向)分类:
1、是文件: FileInputStream, FileOutputStream, FileReader, FileWriter
2、是byte[]:ByteArrayInputStream, ByteArrayOutputStream
3、是Char[]: CharArrayReader, CharArrayWriter
4、是String: StringBufferInputStream, StringReader, StringWriter
5、 ......
通过反射创建新类示例的两种方式及比较
作者BLOG:http://blog.csdn.net/fenglibing
通过反射创建新的类示例,有两种方式:
Class.newInstance()
Constructor.newInstance()
以下对两种调用方式给以比较说明:
l Class.newInstance() 只能 ......
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 = ......