黑马程序员技术交流社区

标题: 关于Map集合中get方法返回值操作的问题? [打印本页]

作者: shdosh    时间: 2015-8-25 22:02
标题: 关于Map集合中get方法返回值操作的问题?
我一个程序Map<Character,Integer>集合,如下代码
  1.                 char[] arr = str.toCharArray();

  2.                 TreeMap<Character,Integer> numMap = new TreeMap<Character,Integer>();
  3.                
  4.                 for(int i =0; i<arr.length; i++){
  5.                         if(!((arr[i]>='a'&& arr[i]<='z')||(arr[i]>='A' && arr[i]<='Z')))
  6.                                 continue;
  7.                         if(numMap.get(arr[i])==null)
  8.                                 numMap.put(arr[i],1);
  9.                         else{
  10.                                 Integer value = numMap.get(arr[i])++;
  11.                                 value++;
  12.                                 numMap.put(arr[i],value);
  13.                         }
  14.                                
  15.                        
  16.                 }
复制代码


Integer value = numMap.get(arr)++;这一句会报错
但是这两句没问题:
                int j = 6;
                Integer i = j++;
                i++;
出错那一句返回的也是Integer的变量,为什么不能那么操作那?
作者: lion_good    时间: 2015-8-26 00:17
numMap.get(arr)返回的是右值,只有左值才能自增




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