HashMap中的
keySet() 方法
返回映射中所包含的键的 set 视图,
返回类型为Set 如果只查询HashMap中的所有键,可以用到这个方法。 entrySet()
返回此映射所包含的映射关系(映射关系是指键值对)的 collection 视图,
在返回的集合中,每个元素都是一个Map.Entry。
与keySet()不同的是,keySet只返回所有的键,
而entrySet则返回的是键值对,不仅包含键,还包括键的值。
所有这里说是“映射(这里指的是Map)所包含的映射关系(键值对关系)”。
Map.Entry 是什么呢?
接口Map.Entry (K指的是键,V指的是值),映射项(键-值对)。
Map.entrySet 方法返回:
映射的 collection 视图,其中的元素属于此类。
获得映射项引用的 惟一 方法:
就是通过此 collection 视图的迭代器来实现。
(登记entry)
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); } ---------效率高,以后一定要使用此种方式!------------------------ 第二种: Map map = new HashMap(); Iterator iter = map.keySet().iterator(); while (iter.hasNext()) { Object key = iter.next(); Object val = map.get(key); }遍历啊
----------------------------------------------------------------------------
Map是java中的接口,Map.Entry是Map的一个内部接口。
Map提供了一些常用方法,如keySet()、entrySet()等方法。
keySet()方法返回值是Map中key值的集合;
entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry
由以上可以得出,遍历Map的常用方法:
1. Map map = new HashMap();
Irerator iterator = map.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry entry = iterator.next();
Object key = entry.getKey();
//
}
2.Map map = new HashMap();
Set keySet= map.keySet();
Irerator iterator = keySet.iterator;
while(iterator.hasNext()) {
Object key = iterator.next();
Object value = map.get(key);
//
}
另外,还有一种遍历方法是,单纯的遍历value值,Map有一个values方法,返回的是value的Collection集合。通过遍历collection也可以遍历value,如
Map map = new HashMap();
Collection c = map.values();
Iterator iterator = c.iterator();
while(iterator.hasNext()) {
Object value = iterator.next();
}
--------------------------------------------------
Map的遍历大体有3种:
1、遍历Map.entrySet():它的每一个元素都是Map.Entry对象,这个对象中,
放着的就是Map中的某一对key-value;
2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来
读取Map中的元素;
3、遍历Map.values():它是Map中value的集合,我们可以直接通过这个集合遍历
Map中的值,却不能读取key。
**********方法一************
b=lisi
c=wangwu
a=zhangsan
******方法二遍历****************
b=lisi
c=wangwu
a=zhangsan
**********方法三遍历************
b=lisi
c=wangwu
a=zhangsan
**********方法四遍历************
b=lisi
c=wangwu
a=zhangsan
**********方法五************
lisi
wangwu
zhangsan
Map中元素存放是无序的
HashMap注意事项:1,HashMap底层维护一个数组,我们向HashMap中所放置的对象实际上是存储在该数组当中;
2,当向HashMap中put一对键值时,它会根据key的hashCode值计算出一个位置,该位置就是此对象准备往数组中存放的位置。
HashMap应用举例:控制台输入一句英语,简单统计各个单词出现的次数
输出结果:
请输入一句英语,单词间用空格隔开:
I love U China I am pround to be a Chinese
统计单词出现的个数,结果如下:
to=1
U=1
love=1
am=1
a=1
pround=1
Chinese=1
I=2
China=1
be=1
http://blog.csdn.net/shenshen123jun/article/details/9074523