请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Integer

map.put(nums1[i], map.get(nums1[i])+1);
老师,这个如果是map.put(nums1[i], map.get(nums1[i])++);就不行呢,这里没有自动装箱吗?

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2019-03-13 01:32:37

不是没有装箱的问题,是map.get(nums1[i])++根本是不合法的。


++是自增运算符,必须作用在一个变量上,把这个变量的结果加1,再装回给这个变量。但是map.get(nums1[i])不是一个变量。


思考一下下面的程序?

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, Integer> map = new HashMap<>();
        map.put(1, 1);
        map.get(1) ++; // 错误的。因为map.get(1)不是变量,而是一个函数读出来的常数
        
        int a = 100;
        a ++; // 正确,a是一个变量
    }
}


继续加油!:)

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号