Map接口用于存储元素对(键和值)
Map接口中的方法
equals(Object o)
hashCode
clear()
remove(Object key)
put(Object key,Object value)
putAll(Map t)
entrySet 返回 Map 中所包含映射的 Set 视图。 Set 中的每个元素都是一个 Map.Entry 对象,可以使用 getKey() 和 getValue() 方法(还有一个 setValue() 方法)访问后者的键元素和值元素
keySet()返回 Map 中所包含键的 Set 视图。 删除 Set 中的元素还将删除 Map 中相应的映射(键和值)
values()返回 map 中所包含值的 Collection 视图。 删除 Collection 中的元素还将删除 Map 中相应的映射(键和值)
get(Object key)返回与指定键关联的值
containsKey(Object key) true or false;
containsValue(Object value) true or false;
isEmpty()
size()
1. HashMap
HashMap提供所有可选的映射操作,并允许使用 null 值和 null 键,除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同
注意,此实现不是同步的。如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须 保持外部同步。这一
般通过对自然封装该映射的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedMap 方法来“包装”该映射。最好在创建时完成这一操作,以防止对映射进行意外的非同步访问,如下所示:
Map m = Collections.synchronizedMap(new HashMap(...));
A: 遍历HashTable, 使用entrySet接口
Map<String,Integer> map=new HashMap<String,Integer>();
map.put("1", 1);
map.put("2", 2);
map.put("3", 3);
map.put("3", 3);
Iterator itor=map.entrySet().iterator();
while(itor.hasNext()){
Map.Entry<String,Integer> entry=(Map.Entry<String,Integer>)itor.next();
System.out.println("key="+entry.getKey().toString());
System.out.println("values="+entry.getValue().toString());
}
B: 遍历HashTable, 使用keySet 和 values接口
Set<String> keys=map.keySet();
Iterator itor=keys.iterator();
while(itor.hasNext()){
Object key=itor.next();
System.out.println("key="+key.toString());
System.out.println("value="+map.get(key).toString());
}
Collection co=map.values();
Iterator itor=co.iterator();
while(itor.hasNext()){
System.out.println("value="+itor.next());
}
Hashtable和HashMap的区别:
1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;
2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以
使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:
Map Collections.synchronizedMap(Map m)
这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。
3.在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示
HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用
containsKey()方法来判断。
- 大小: 2.2 KB
分享到:
- 2009-07-06 21:02
- 浏览 1178
- 评论(0)
- 论坛回复 / 浏览 (0 / 4803)
- 查看更多
相关推荐
`Map`接口是Java集合框架的一部分,它提供了基于键值对的数据存储方式。常见的实现类包括`HashMap`(无序)、`LinkedHashMap`(有序)、`TreeMap`(排序)等。Map的主要方法包括`put`、`get`、`remove`、`...
本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...
Java集合框架中的Map接口是Java编程中非常重要的一个部分,它提供了一种存储键值对数据的方式。在Map中,每个键(key)都是唯一的,用于标识对应的值(value),而值可以重复出现。这种数据结构广泛应用于各种场景,...
本文将探讨Map接口及其主要实现,并讨论如何根据应用需求选择合适的Map类型。 **Map接口和方法** Map接口定义了四个主要的方法,所有Map实现都必须实现这些方法。其中,`equals(Object o)`和`hashCode()`方法用于...
Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构,其中每个键都是唯一的,并且与一个值相关联。Map集合不同于List,因为它不维护元素的顺序,而是通过键来访问其对应的值。本文将详细介绍...
Java是一种广泛使用的面向对象的编程语言,其集合框架是学习Java的重要部分,特别是Map接口,它是集合中的关键组件。Map接口在Java中用于存储键值对数据,它提供了丰富的功能来管理和操作这些数据。本篇笔记集合将...
在`java集合.png`和`java集合.xmind`文件中,你可以找到更为直观的思维导图,它将帮助你清晰地理解各个接口之间的关系以及它们的主要特性。通过这样的学习方式,不仅可以加深对Java集合的理解,还能提高问题解决的...
Map集合是Java集合框架的一部分,它允许我们以键(Key)-值(Value)对的形式存储数据。在Map中,键是唯一的,而值可以重复。Java提供了多种Map接口的实现,如HashMap、TreeMap、LinkedHashMap等,它们各有不同的...
HashMap是Java 1.2引入的,它是Map接口的一个实现,提供了高效且灵活的键值对存储。HashMap是非同步的,这意味着在多线程环境中,如果不进行适当的同步控制,可能会导致数据不一致。为了在多线程环境下使用HashMap,...
其次,HashMap是Java中处理键值对的数据结构,它实现了Map接口。HashMap基于哈希表实现,提供了O(1)的平均时间复杂度进行查找、插入和删除操作。哈希表的关键在于计算键的哈希值,并利用哈希值确定元素在内部数组中...
在Java编程语言中,Map接口是集合框架的重要组成部分,它提供了键值对(Key-Value)的数据存储方式。Map不是列表或数组,它允许通过键来查找和操作对应的值。本篇文章将详细介绍Map的基本用法和关键特性。 1. **...
Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构。Map不同于List,List是以索引来访问元素,而Map则是通过键(key)来查找对应的值(value)。Map接口定义了一系列方法,使得我们可以对...
Java基础知识汇总之集合框架List、Map、Set接口及其子类综合对比
3. Map接口:Map接口用于存储键值对,不包含重复键,但键值对可以重复。HashMap是最常用的实现,它基于哈希表,提供快速的存取速度;LinkedHashMap保持了插入顺序或者访问顺序;TreeMap则使用红黑树结构,元素按照键...
总的来说,理解并熟练运用Java集合框架中的Map接口及其实现,对于JSP应用开发来说至关重要。正确选择和使用这些类可以帮助我们编写出高效、可维护的代码。在实际项目中,应根据具体需求和场景来决定使用哪种集合类型...
重点探讨了 Java集合框架中的 Map接口及其主要实现类(HashMap、TreeMap、LinkedHashMap),并通过示例代码展示它们的使用方法。文章还深入讨论了泛型在 Map中的应用及其优缺点,最后介绍了一些高级用法,如自定义 ...
本文将深入探讨Java集合框架的基础知识,包括接口、类、以及它们在实际开发中的应用。 首先,Java集合框架由一系列接口和实现这些接口的类组成。主要的接口有`List`、`Set`和`Queue`,它们各自代表了不同特性的数据...
进入Java集合框架的核心,我们有四个主要接口:`Collection`、`List`、`Set`和`Map`。`Collection`是最基础的接口,它是所有集合的父接口,但它不提供`get()`方法,通常我们通过`Iterator`遍历`Collection`。`List`...