黑马程序员技术交流社区

标题: Map集合的两种遍历方式 [打印本页]

作者: 伯爵公子    时间: 2015-7-21 09:07
标题: Map集合的两种遍历方式
  1. import java.util.HashMap;
  2. import java.util.Map;
  3. import java.util.Set;
  4. import java.util.Iterator;

  5. class MapDemo
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 Map<Integer,String> map = new HashMap<Integer,String>();
  10.                 method(map);
  11.         }
  12.         //学号和姓名
  13.         public static void method(Map<Integer,String> map)
  14.         {
  15.                 //添加元素
  16.                 System.out.println(map.put(1,"李二"));//null
  17.                 System.out.println(map.put(1,"李一"));//李二
  18.                 System.out.println(map);//1=李一

  19.                 map.put(2,"王二");
  20.                 map.put(3,"张三");
  21.                 System.out.println(map);


  22.                 /*
  23.                 遍历方法1:通过map的keySet方法获取map中所有的键所在的set集合,
  24.                 再通过set的迭代器获取到每一个键,再对每一个键通过get(key)方法获取对应的值。
  25.                 */
  26.                 Set<Integer> keySet= map.keySet();
  27.                 Iterator<Integer> it1 = keySet.iterator();
  28.                 while (it1.hasNext())
  29.                 {
  30.                         Integer key = it1.next();
  31.                         String value = map.get(key);
  32.                         System.out.println(key+"\t"+value);
  33.                 }

  34.                 /*
  35.                 遍历方法2:通过map转成set就可以迭代。用entrySet方法将键值映射关系作为对象存储到set集合中,
  36.                 而这个映射关系的类型就是Map.Entry类型。
  37.                 */
  38.                 Set<Map.Entry<Integer,String>> entrySet = map.entrySet();

  39.                 Iterator<Map.Entry<Integer,String>> it2 = entrySet.iterator();
  40.                 while (it2.hasNext())
  41.                 {
  42.                         Map.Entry<Integer,String> me = it2.next();
  43.                         Integer key = me.getKey();
  44.                         String value = me.getValue();
  45.                         System.out.println(key+"\t"+value);
  46.                 }
  47.         }
  48. }
复制代码


Map的遍历方式比较复杂,记住代码很重要。

作者: 李文思    时间: 2015-7-21 09:56
是的,Map集合是我比较薄弱的地方,学习了。
作者: pengbin    时间: 2015-7-21 10:13
谢谢分享
作者: 伯爵公子    时间: 2015-7-22 07:36
李文思 发表于 2015-7-21 09:56
是的,Map集合是我比较薄弱的地方,学习了。

感觉差不多,当时学能记住,学了后面的IO就忘记了前面的集合类
作者: 伯爵公子    时间: 2015-7-22 07:39
pengbin 发表于 2015-7-21 10:13
谢谢分享

不客气,一起为黑马努力呀
作者: fantianfei    时间: 2015-7-22 07:58
刚看过这些知识点。
作者: 代晃    时间: 2015-7-22 08:12
似曾相识的感觉扑面而来
作者: 伯爵公子    时间: 2015-7-23 09:26
fantianfei 发表于 2015-7-22 07:58
刚看过这些知识点。

这个知识点比较重要呀,就是有点容易忘记
作者: 伯爵公子    时间: 2015-7-23 09:28
代晃 发表于 2015-7-22 08:12
似曾相识的感觉扑面而来

我也是很多知识点看完就似曾相识,昨天刚学的切割文件和合并文件,今天就忘记具体代码了。哎
作者: rxtm    时间: 2015-7-23 12:15
只记得第一种,第二种感觉都没见过
作者: 伯爵公子    时间: 2015-7-24 09:09
rxtm 发表于 2015-7-23 12:15
只记得第一种,第二种感觉都没见过

那你得好好看看,毕老师视频上有呀
作者: rxtm    时间: 2015-7-24 16:41
伯爵公子 发表于 2015-7-24 09:09
那你得好好看看,毕老师视频上有呀

我没看过他的视频
作者: 伯爵公子    时间: 2015-7-25 11:43
rxtm 发表于 2015-7-24 16:41
我没看过他的视频

那你是怎么学得?
作者: rxtm    时间: 2015-7-25 13:53
伯爵公子 发表于 2015-7-25 11:43
那你是怎么学得?

看书,又看过一点马士兵的




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