黑马程序员技术交流社区

标题: 关于StringBuilder的疑问 [打印本页]

作者: lijian    时间: 2016-5-4 14:36
标题: 关于StringBuilder的疑问
  1. public static void main(String[] args)
  2.         {
  3.                   // 1、取出一个字符串中字母出现的次数
  4.                 String str="akllm";
  5.                 char[] chs=str.toCharArray();
  6.                 StringBuilder sb=new StringBuilder();
  7.                 TreeMap<Character, Integer> map=new TreeMap<Character, Integer>();
  8.                 for (int x = 0; x < chs.length; x++)
  9.                 {
  10.                         Integer value=map.get(chs[x]);
  11.                         if (value==null)
  12.                         {
  13.                                 map.put(chs[x], 1);
  14.                         }
  15.                         else {
  16.                                
  17.                                 map.put(chs[x], (value+1));
  18.                         }
  19.                 }
  20.                 Set<Character> set=map.keySet();
  21.                 Iterator<Character> it=set.iterator();
  22.                 while(it.hasNext())
  23.                 {
  24.                         Character key=it.next();
  25.                         Integer value=map.get(key);
  26.                         sb.append(key+"["+value+"]");
  27.                 }
  28.                 System.out.println(sb.toString());
  29.                
  30.                
  31.         }
复制代码

当把sb.append(key+"["+value+"]");这句中的key换成it.next()时,运行结果就会出错,我的理解这两种写法应该等效啊,为什么会出错呢




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