黑马程序员技术交流社区

标题: entrySet问题 [打印本页]

作者: mulua    时间: 2013-7-4 17:26
标题: entrySet问题
  1. Set<Map.Entry<String, Integer>>entrySet = map.entrySet();
  2.         Iterator<Map.Entry<String,Integer>> iterator = entrySet.iterator();
  3.         while (iterator.hasNext())
  4.         {
  5.             Map.Entry<String, Integer> entry= iterator.next();
  6.             String name=entry.getKey();
  7.             int age = entry.getValue();
  8.             System.out.println(name+":::"+age);
  9.             if (name.equals("zhangsan"))
  10.             {
  11.                
  12.                 entry.setValue(88);
  13.             }
  14.             System.out.println(name+":::"+age);
  15.         }
复制代码
为什么entry.setValue(88);改不了值呢


作者: oxf974025918    时间: 2013-7-4 17:47
map.entrySet()怎么来的?
作者: mulua    时间: 2013-7-4 17:51
  1. package it;

  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.Map;
  5. import java.util.Set;

  6. public class A
  7. {
  8.        
  9.         public static void main(String[] args)
  10.         {
  11.                 Map<String, Integer> map = new HashMap<String,Integer>();
  12.                 map.put("zhangsan", 18);
  13.                 map.put("lisi", 21);
  14.                 map.put("wangwu", 19);
  15.                 map.put("zhouliu", 46);
  16.         //        System.out.println(map.size());
  17.                 /*//通过keySet取出
  18.                 Set<String> keySet = map.keySet();
  19.                 Iterator<String> it = keySet.iterator();
  20.                 while (it.hasNext())
  21.                 {
  22.                         String name = it.next();
  23.                         int age = map.get(name);
  24.                         //System.out.println(name+":::"+age);
  25.                        
  26.                        
  27.                 }*/
  28.                
  29.                
  30.                 //通过entrySet取出
  31.                 Set<Map.Entry<String, Integer>>entrySet = map.entrySet();
  32.                 Iterator<Map.Entry<String,Integer>> iterator = entrySet.iterator();
  33.                 while (iterator.hasNext())
  34.                 {
  35.                         Map.Entry<String, Integer> entry= iterator.next();
  36.                         String name=entry.getKey();
  37.                         int age = entry.getValue();
  38.                         System.out.println(name+":::"+age);
  39.                         if (name.equals("zhangsan"))
  40.                         {
  41.                                
  42.                                 entry.setValue(88);
  43.                         }
  44.                         System.out.println(name+":::"+age);
  45.                 }
  46.         }
  47. }
复制代码

作者: 王洪波    时间: 2013-7-4 21:13
  1. public class Snippet
  2. {       
  3.         public static void main(String[] args)
  4.         {
  5.                 Map<String, Integer> map = new HashMap<String, Integer>();
  6.                 map.put("1", 1);
  7.                 map.put("zhangsan", 20);
  8.                 Set<Map.Entry<String, Integer>>entrySet = map.entrySet();
  9.                 Iterator<Map.Entry<String,Integer>> iterator = entrySet.iterator();
  10.         while (iterator.hasNext())
  11.         {
  12.             Map.Entry<String, Integer> entry= iterator.next();
  13.             String name=entry.getKey();
  14.             int age = entry.getValue();
  15.             System.out.println(name+":::"+age);
  16.             if (name.equals("zhangsan"))
  17.             {
  18.                
  19.                 entry.setValue(88);
  20.             }
  21.             //是这行代码有问题,变量name与age的值还是上边的,并没有改变啊
  22.             //应重新给name与age求值,再打印
  23.             name = entry.getKey();
  24.             age = entry.getValue();
  25.             System.out.println(name+":::"+age);
  26.         }
  27.         }
  28. }
复制代码

作者: mulua    时间: 2013-7-4 21:53
王洪波 发表于 2013-7-4 21:13

明白了                                       




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