键找值方式:即通过元素中的键,获取键所对应的值。
分析步骤:
1. 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示: keyset()
2. 遍历键的Set集合,得到每一个键。 方法提示: 增强for循环方式、迭代器方式
3. 根据键,获取键所对应的值。方法提示: get(K key)
代码演示:
//Map集合遍历键找值方式
public class MapDemo1 {
public static void main(String[] args) {
//创建Map集合对象
HashMap<Integer, String> map = new HashMap<Integer, String>();
//添加元素
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");
map.put(4, "d");
//获取键集
Set<Integer> keys = map.keySet(); //需指明Integer类型来与下面增强for的类型相匹配
//增强for方式 遍历键集 得到每一个键
for(Integer key : keys) {
//通过键来获取对应的值
String value = map.get(key);
System.out.println(key + ":" + value);
}
Set keys1 = map.keySet(); //获取哈希映射map的键对象集合,这里也可不再重新创建keys1集合而直接用上面的keys集合
Iterator it = keys1.iterator(); //获取键对象集合的迭代器
//迭代器方式 遍历键对象集 得到每一个键对象
while(it.hasNext()) {
//通过键对象来获取键
Integer key = (Integer)it.next(); //需将Object类型转换成Integer类型
//通过键来获取对应的值
String value = map.get(key);
System.out.println(key + "=" + value);
}
}
}
输出结果:
1:a
2:b
3:c
4:d
1=a
2=b
3=c
4=d
键值对方式:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。
分析步骤:
1. 获取Map集合中,所有的键值对(Entry)对象,以Set集合形式返回。方法提示: entrySet()
2. 遍历包含键值对(Entry)对象的Set集合,得到每一个键值对(Entry)对象。方法提示: 增强for循环方式、迭代器方式。
3. 通过键值对(Entry)对象,获取Entry对象中的键与值。 方法提示: getkey() getValue()
代码演示:
//Map集合遍历键值对方式
public class MapDemo2 {
public static void main(String[] args) {
//创建Map集合对象
HashMap<Integer, String> map = new HashMap<Integer, String>();
//添加元素
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");
map.put(4, "d");
//获取键值对集
Set<Entry<Integer, String>> entrys = map.entrySet();
//增强for方式 遍历键值对集 得到每一个键值对
for(Entry<Integer, String> entry : entrys) {
//通过键值对获取键
Integer key = entry.getKey();
//通过键值对获取值
String value = entry.getValue();
System.out.println(key + ":" + value);
}
Iterator it = entrys.iterator();
//迭代器方式 遍历键值对对象集 得到每一个键值对对象
while(it.hasNext()) {
//通过键值对对象获取键值对
Entry<Integer, String> entry = (Entry<Integer, String>)it.next();
//通过键值对获取键
Integer key = entry.getKey();
//通过键值对获取值
String value = entry.getValue();
System.out.println(key + "=" + value);
}
}
}
输出结果:
1:a
2:b
3:c
4:d
1=a
2=b
3=c
4=d