黑马程序员技术交流社区
标题:
[哈尔滨校区]双列集合两种遍历方式
[打印本页]
作者:
dawei
时间:
2016-2-28 13:58
标题:
[哈尔滨校区]双列集合两种遍历方式
方式一:通过keySet()获取所有键的集合,然后遍历键的集合,获取到每一个键,然后通过getKey()方法
获取每一个值,这样把键和值一一对应的找出来了 就遍历了集合
需要用到的方法:
V get(Object key):根据键获取值
Set<K> keySet():获取集合中所有键的集合
代码演示:
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("李四", 24);
map.put("王五", 25);
map.put("赵六", 26);
//获取所有的键
/*
Set<String> keySet = map.keySet(); //获取所有键的集合
Iterator<String> it = keySet.iterator(); //获取迭代器
while(it.hasNext()) { //判断集合中是否有元素
String key = it.next(); //获取每一个键
Integer value = map.get(key); //根据键获取值
System.out.println(key + "=" + value);
}
*/
//使用增强for循环遍历
for(String key : map.keySet()) { //map.keySet()是所有键的集合
System.out.println(key + "=" + map.get(key));
}
}
方式二:通过entrySet()获取所有的键值对的集合,然后遍历键值对的集合,获取每一个键值对,
然后根据键值对来获取每一个键和值,这样把键和值一一对应的找出来了 就遍历了集合
需要用到的方法:
Set<Map.Entry<K,V>> entrySet():获取所有的键值对的集合
Map.Entry接口里面的
K getKey():获取键值对中的键
V getValue():获取键值对中的值
代码演示:
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("李四", 24);
map.put("王五", 25);
map.put("赵六", 26);
//Map.Entry说明Entry是Map的内部接口,将 键和值的键值对 封装成了Entry对象,并存储在Set集合中
/*
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
//获取每一个 键值对 对象
Iterator<Map.Entry<String, Integer>> it = entrySet.iterator();
while(it.hasNext()) {
//获取每一个键值对对象
Map.Entry<String, Integer> en = it.next(); //父类引用指向子类对象
//Entry<String, Integer> en = it.next(); //直接获取的是子类对象
String key = en.getKey(); //根据键值对对象获取键
Integer value = en.getValue(); //根据键值对对象获取值
System.out.println(key + "=" + value);
}
*/
for(Entry<String, Integer> en : map.entrySet()) {
System.out.println(en.getKey() + "=" + en.getValue());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2