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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lijian 中级黑马   /  2016-5-4 14:36  /  413 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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()时,运行结果就会出错,我的理解这两种写法应该等效啊,为什么会出错呢

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马