当前位置: 代码迷 >> J2SE >> 关于Integer类跟Map的疑问
  详细解决方案

关于Integer类跟Map的疑问

热度:29   发布时间:2016-04-23 21:23:58.0
关于Integer类和Map的疑问

HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
Integer r = new Integer((int)(Math.random() * 20));
if( hm.containsKey(r) ){
//hm.get(r) ++;编译器报错
Integer kk = hm.get(r);
kk ++;//能通过编译
}


通过hm.get(r)取出来的应该是一个Integer类,直接在hm.get(r)的基础上++,编译器报错,但是如果重新赋值给kk后,再把kk ++,就能通过编译,这是为啥呢?

------解决方案--------------------
hm.get(r)++这个意思是:

hm.get(r)=hm.get(r)+1;
你认为上面成立吗?
------解决方案--------------------
一个为声明的变量可以直接进行++操作?
hm.get(r)只是一个值,连声明都没有,如何编译通过?
  相关解决方案