Java调试器和编译器给出不同的结果

时间:2017-12-09 00:56:41

标签: java

我正在使用Java 1.8.0_144,我在IntelliJ IDEA 2017.2.2中使用调试器。现在我的问题是了解我重新创建的某段代码发生了什么。

我知道我可能正在做我不需要的事情,但我只是想了解这里发生了什么,如果有人能向我解释的话。 (代码在底部)。

当我在调试器中运行它时,它会按照我的预期打印出来:

第一

第二

但是当我正常运行时,会打印出来:

第二

第一

当我在程序结束附近翻转ArrayList并运行它时,我能够获得正确的顺序,但我不知道为什么我必须翻转它或导致这种情况的原因。出于某种原因,当我正常运行时,ArrayList会被翻转。

以下是我正在使用的导入:

java.util.ArrayList;
java.util.Dictionary;
java.util.Enumeration;
java.util.Hashtable;

代码:

public static void main(String[] args) {
    ArrayList<String> arrLs = new ArrayList<>();

    Dictionary<String, Integer> table = new Hashtable<>();
    table.put("First", 1);
    table.put("Second", 2);

    Enumeration<String> enumer = table.keys();
    while(enumer.hasMoreElements()) {
        String str = enumer.nextElement();
        arrLs.add(str);
    }

    for(String s : arrLs) {
        System.out.println(s);
    }
}

0 个答案:

没有答案