【JAVA集合框架之Map】

一、概述。
1.Map是一种接口,在JAVA集合框架中是一个非常重要的集合。
2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)
3.Map集合中存放的是一个一个的键值对,集合中存放的元素必须保证键的唯一性。
二、常用方法。
1.添加

 V put(K key, V value)
          将指定的值与此映射中的指定键关联(可选操作)。

该方法的作用就是向集合中添加一个键值对,并返回一个值;如果键存在,则返回对应的旧值,并以新值取代之;如果键不存在则返回null。所以该方法也是修改的方法。

void putAll(Map<? extends K,? extends V> m)
          从指定映射中将所有映射关系复制到此映射中(可选操作)。

该方法功能略,但注意泛型上限的使用。比较Collection方法:

 boolean addAll(Collection<? extends E> c)
          将指定
collection 中的所有元素都添加到此 collection 中(可选操作)。

2.删除

 V remove(Object key)
          如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

该方法根据键删除一个键值对,并返回值。如果没有这个键值对,将返回null。

 void clear()
          从此映射中移除所有映射关系(可选操作)。

该方法功能就是清空集合。
3.判断

 boolean containsKey(Object key)
          如果此映射包含指定键的映射关系,则返回 true
 boolean containsValue(Object value)

如果此映射将一个或多个键映射到指定值,则返回 true

这两个方法,前者判断是否存在指定键,后者判断是否存在指定值。

 boolean isEmpty()
          如果此映射未包含键-值映射关系,则返回 true

该方法用于判断该Map集合是否为空集合。
4.获取。

 V get(Object key)
          返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
 int size()
          返回此映射中的键-值映射关系数。

这两个方法,前者根据指定的键获取对应的值,如果集合中没有指定的键,则返回null;后者获取键值对的个数。

以上的方法为基本方法,重点方法在下面。

三、重点:Map集合的三种遍历方式。

1.第一种遍历方式:使用keySet方法。

 Set<K> keySet()
          返回此映射中包含的键的 Set 视图。

该方法会返回一个包含所有键的Set集合。

遍历过程:先得到所有键的集合,遍历集合,根据键得到所有的值。

 1 package p01.traverseDemo01.keySetDemo;
 2
 3 import java.util.HashMap;
 4 import java.util.Iterator;
 5 import java.util.Map;
 6 import java.util.Set;
 7
 8 public class KeySetDemo {
 9
10     public static void main(String[] args) {
11         Demo01();
12     }
13
14     private static void Demo01() {
15         Map<Integer,String>map=new HashMap<Integer,String>();
16         map.put(1, "wangcai");
17         map.put(2, "xiaoqiang");
18         map.put(3, "xiaoming");
19
20         Set<Integer>set=map.keySet();
21         for(Iterator<Integer>it=set.iterator();it.hasNext();)
22         {
23             Integer key=it.next();
24             String value=map.get(key);
25             System.out.println(key+":"+value);
26         }
27
28     }
29
30 }

应当注意,结果是无序的,这是因为采用了HashMap作为示例,HashMap底层的数据结构是哈希表,存储元素的时候有自己的规则,所以无序。

2.第二种便利方式:使用entrySet方法。

 Set<Map.Entry<K,V>> entrySet()
          返回此映射中包含的映射关系的 Set 视图。

此方法返回值也是一个Set集合,但是存储的内容是Map.Entry对象。Map.Entry是什么东西?

JDK1.6API的解释如下:

嵌套类摘要
static interface Map.Entry<K,V>
          映射项(键-值对)。
时间: 2024-10-14 20:53:00

【JAVA集合框架之Map】的相关文章

Java集合框架中Map接口的使用

在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不是线性的存放对象的引用,Map接口提供了一种映射关系,所有的元素都是以键值对(Entry类型对象实例)的方式存储的,所以能够根据key快速查找value,key是映射关系的索引,value是key所指向的对象,注意,这里的value不是一个数值,而是一个对象的引用,Java集合框架的元素均是指对象!

java集合框架07——Map架构与源码分析

前几节我们对Collection以及Collection中的List部分进行了分析,Collection中还有个Set,由于Set是基于Map实现的,所以这里我们先分析Map,后面章节再继续学习Set.首先我们看下Map架构图: 从图中可以看出: 1. Map是一个接口,Map中存储的内容是键值对(key-value). 2. 为了方便,我们抽象出AbstractMap类来让其他类继承,该类实现了Map中的大部分API,其他Map的具体实现就可以通过直接继承AbatractMap类即可. 3.

java集合框架之Map

Map: 一次添加一对元素(key->value) 双列集合,键值对 常用方法: 1.  添加 V put(K key , V value)会更新key对应的value,并返回被替换的value 2.  删除 clear():清空集合 V remove(K key) :根据指定的key删除这个键值对 3.  判断: Boolean containsKey(key) Boolean containsValue(value); Boolean isEmpty(); 4.  获取 Value get(

Java 集合框架之 Map

Hashtable Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子.容量 是哈希表中桶 的数量,初始容量就是哈希表创建时的容量.注意,哈希表的状态为 open:在发生“哈希冲突”的情况下,单个桶会存储多个条目,这些条目必须按顺序搜索.加载因子 是对哈希表在其容量自动增加之前可以达到多满的一个尺度.初始容量和加载因子这两个参数只是对该实现的提示.关于何时以及是否调用 rehash 方法的具体细节则依赖于该实现. 通常,默认加载因子(.75)在时间和空间成本上寻求一种折衷.加载

I学霸官方免费教程三十三:Java集合框架之Map集合

Map接口 Map集合采用键值对(key-value)的方式存储数据,其中键不可以重复.值可以重复. 常用类有HashMap.TreeMap和Properties HashMap类 假如,现在我有一个集合,集合中存储着一批WiFi的名称和密码,现在要求通过名称快速找到密码.这样的需求使用List集合实现起来非常困难,Java为我们提供了另一种形式的集合,可以很好的解决这样的问题.就是Map集合. 实例: package map.hashMap; import java.util.HashMap;

JavaSE入门学习37:Java集合框架之Map接口及其实现类HashMap和TreeMap

一Map接口 Map接口中的每个成员方法由一个关键字(key)和一个值(value)构成.Map接口不直接继承于Collection接口,因 为它包装的是一组成对的"键-值"对象的集合,而且在Map接口的集合中也不能有重复的key出现,因为每个键只能与 一个成员元素相对应. Map接口定义了存储"键(key)--值(value)映射对"的方法.实现Map接口的类用来存储键值对.Map接口中包含 了一个keySet()方法,用于返回Map中所有key组成的Set集合.

【转】Java集合框架List,Map,Set等全面介绍

原文网址:http://android.blog.51cto.com/268543/400557 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +--java.util.LinkedList [C]   +--java.u

我所理解Java集合框架的部分的使用(Collection和Map)

所谓集合,就是和数组类似--一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接口,长虚线表示抽象类,实线表示类,箭头表示实现接口或者继承)(在网络上找的图,不知道原作者,侵权请联系我删除)(总之,关系很复杂,所以不用记得这个图,只是用来吓吓人而已的). 下面贴上个人理解之精简版之Collection(集)和Map(地图?暂且这么理解吧),话说思维导图蛮好用,以下是两幅思维导图

Java集合框架--List、Set、Map

Java集合框架接口和类的层次结构: java.util.Collection [I] +--java.util.List [I] +--java.util.ArrayList [C] +--java.util.LinkedList [C] +--java.util.Vector [C] +--java.util.Stack [C] +--java.util.Set [I] +--java.util.HashSet [C] +--java.util.SortedSet [I] +--java.u