这个问题在这里已经有答案了:
增量后(i++)和增量前(++i)操作符在java中是如何工作的(14个答案)
7天前关门了。
抱歉,我刚开始学习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…所以我不知道循环中发生了什么。。。
谢谢你们
1条答案
按热度按时间l3zydbqr1#
不,不一样。
m、 put(x,count+1);将count+1放入m,当m.put(x,count++)时不增加count;将增加计数。
易于尝试:)