黑马程序员技术交流社区

标题: Map集合的两种遍历方式:keyset和Entry图解 [打印本页]

作者: ulddfhv    时间: 2015-4-17 23:51
标题: Map集合的两种遍历方式:keyset和Entry图解
KetSet:集合遍历之根据键找值
  1. package cn.itcast.map;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import java.util.Set;
  5. //Map集合的遍历之键找值
  6. //分析:
  7. //1.使用Map.keySet方法得到所有的Set(所有的key)
  8. //2.遍历Set,就得到了每一个Key,在根据map.get(key),获取key对应的value.

  9. public class MapDemo4 {

  10.         public static void main(String[] args) {
  11.                 //1.定义Map集合,装入数据
  12.                 Map<String, String> map = new HashMap<String, String>();
  13.                 map.put("one", "aaa");
  14.                 map.put("two", "bbb");
  15.                 map.put("3", "ccc");
  16.                 //2.得到所有的key
  17.                 Set<String> keys=map.keySet();
  18.                
  19.                 //3.遍历keys这个Set集合,就得到了Map集合中所有的key
  20.                 for(String key:keys){
  21.                         //4.根据key获取对应的value.
  22.                         System.out.println("key:"+key+"  value:"+map.get(key));
  23.                 }
  24.         }
  25. }
复制代码
EntrySet:集合的遍历之键值对对象找键和值
  1. package cn.itcast.map;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import java.util.Set;
  5. //关于Map集合中的entrySet方法;
  6. import static java.util.Map.*;

  7. public class MapDemo5 {

  8.         public static void main(String[] args) {
  9.                 // 1.定义Map集合,装入数据
  10.                 Map<String, String> map = new HashMap<String, String>();
  11.                 map.put("one", "aaa");
  12.                 map.put("two", "bbb");
  13.                 map.put("3", "ccc");

  14.                 // 2.调用map集合的entrySet方法
  15.                 Set<Entry<String, String>> set = map.entrySet();
  16.                 // entrySet方法返回的是一个Set集合,而集合中的对象是Map.Entry类型,对于Entry,我们可以使用泛型来规范它,它的泛型就是Map集合的泛型
  17.                 for (Entry<String, String> en : set) { // 从Set集合中遍历出来的就是Map.Entry类型对象
  18.                         System.out.println(en.getKey() + "  " + en.getValue()); // 可以通过Map.Entry的getKey,getValue,获取对应的key与value.
  19.                 }
  20.         }
  21. }
  22. /*
  23. * Set<Map.Entry<K, V>> entrySet(); entrySet方法的返回值是Set集合,集合中的元素是 Map.Entry
  24. *
  25. * 通过查找源代码发现 Entry是一个接口,而这个接口是定义在Map接口中。
  26. */
复制代码

图解


qqqqqqqq.png (76.69 KB, 下载次数: 13)

qqqqqqqq.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2