是x++;与x+相同;1在Java中?

是x++;与x+相同;1在Java中?,java,arrays,hashmap,Java,Arrays,Hashmap,对不起,我刚开始学习Java,我的问题可能很愚蠢,但我想得到答案 这是我使用eclipse ide编写的代码: package draft; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; public class Draft { public static void main(String[] args) { // TO

对不起,我刚开始学习Java,我的问题可能很愚蠢,但我想得到答案

这是我使用eclipse ide编写的代码:

package draft;

import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

public class Draft {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Map m=new LinkedHashMap();
    String []arr= {"hello","piggie","piggie","piggie"};
    
    for(String x:arr) {
        
    if(m.containsKey(x)) {

    int count=(int) m.get(x);
    m.put(x, count +1);
    }
    else {
    m.put(x,1);
    }
    }
    System.out.println(m);
}
}
所以我的问题是对于代码m.put(x,count+1),这是否等于m.put(x,count++)。我认为它们是一样的,但是Java却不这么认为。。。有人能解释一下这种情况的区别吗?我试着用debug一步一步地查看变量是什么,但是在我设置了断点并用step-into函数来计算变量是如何变化的之后,变量计数就停在了1…所以我不知道循环中发生了什么

谢谢大家

不,不一样

m、 put(x,count+1);将count+1放入m,在m.put(x,count++)时不增加count;将增加计数


易于尝试:)

x+1是一个表达式。计算表达式后,x++将x增加1作为副作用。不,不一样。这回答了你的问题吗?我真的不明白。我知道m.put(x,count+1)将count+1放入m,但count++不应该这样做吗?我的代码逻辑:
intcount=(int)m.get(x);m、 put(x,count++)
is count=与键x关联的值,然后将count++放入键x中。根据你的回答(count++增加count),那么代码
int count=(int)m.get(x)
变成:increased count=count+,我不知道这是什么意思。。。换句话说,我理解count+1是如何工作的以及它为什么工作,但不理解m.put中的count++为什么不工作。。。如果这有意义的话…@lilpigie0522这是因为count++只在put之后进行增量。正如我所说的,试试看:)