关于Integer类跟Map的疑问
关于Integer类和Map的疑问HashMapInteger, Integer hm new HashMapInteger, Integer()Integer r
关于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)只是一个值,连声明都没有,如何编译通过?