是x++;与x+相同;1在Java中?
对不起,我刚开始学习Java,我的问题可能很愚蠢,但我想得到答案 这是我使用eclipse ide编写的代码:是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
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之后进行增量。正如我所说的,试试看:)