A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mulua 中级黑马   /  2013-7-4 17:26  /  1702 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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);改不了值呢

4 个回复

倒序浏览
map.entrySet()怎么来的?
回复 使用道具 举报
  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. }
复制代码
回复 使用道具 举报
  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. }
复制代码
回复 使用道具 举报

明白了                                       
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马