【Map使用】遍历Map集合案例keySet()和 entrySet()

时间:2021-10-25 19:36:14
/*遍历Map集合
Set<K> keySet():得到所有键的集合,存储到Set中,并返回该Set集合,因为Set有迭代器
所有可以通过迭代器,每次迭代出一个键,再根据键获取到对应的值


Set<Map.Entry<K.V> entrySet():得到每个键值对对应的映射关系类型的值,存到Set集合中,
并返回该集合,因为Set有迭代器,每次迭代出来的都是一个映射关系类型的值,
从这个映射关系类型的值中即可得到键,也可以得到值
(就像可以通过结婚证得到男方和女方的信息一样的概念)


Entry:是定义在Map中的一个静态接口,有了集合,就有了集合中的键值对,才会存在映射关系,
所以映射关系是对集合内部事物的描述,所以定义在Map内部


【添加】:
V put(K key,Value)
void putAll(Map<? extends K,? extends V> m)


【删除】:
V remove(Object key)
void clear();


【获取】:
V get(Object key)
Set<K> keySet()
Set<Map.Entry<K,V>> entrySet()
int size() //这个是指这个集合中一共有多少个
Collection<V> values() //得到多少有值


【判断】:
boolean isEmpty() //判断是否为空
boolean contrainsKey(Object key)//是否包含键
boolean contrainsValue(Object value)//是否包含值


*/
package com.Map;
import java.util.*;
public class TestMapBL {
public static void main(String[] args) {
Map<String,String> map=new HashMap<String,String>();
map.put("001", "dondon");
map.put("002", "xixi");
map.put("003", "nannan");

/* 遍历集合演示1:Set<K> keySet(): 得到所有键的集合,存储到Set中,并返回该Set集合,因为Set有迭代器
所有可以通过迭代器,每次迭代出一个键,再根据键获取到对应的值 */
Set<String> keys=map.keySet();//将所有键的集合到到Set
Iterator<String> ite=keys.iterator();//定义每次迭代出来的都是字符串
while(ite.hasNext())
{
String key=ite.next();//获取到迭代器的键
String value=map.get(key);//通过键获取到对应键的值
System.out.println(key+"="+value);
}  
/* 输出效果:
001=dondon
002=xixi
003=nannan*/


/* 遍历集合演示2:Set<Map.Entry<K.V> entrySet()
* 原理:将数据存放到Set,再通过Set的迭代器,遍历出来值,entrySet存放的是把值当作一个结婚证来用
* */
Set<Map.Entry<String, String>> entry=map.entrySet();
Iterator<Map.Entry<String, String>> ite2=entry.iterator();
while(ite2.hasNext())
{
Map.Entry<String, String> en=ite2.next();
String key2=en.getKey();
String value2=en.getValue();
System.out.println(key2+"="+value2);
}


/* 输出效果:
001=dondon
002=xixi
003=nannan*/
}
}