列表的打印迭代



我是Java的新手,我正在尝试打印出列表中的值,但产生的所有内容都是false。我不确定为什么会发生这种情况。

法典:

    List<Integer> coins = new ArrayList<Integer>();
    coins.add(4);
    coins.add(14);
    coins.add(2);
    coins.add(33);
    coins.add(2);
    coins.add(7);
    coins.add(56);
    coins.add(5);
    coins.add(8);
    for (Integer j : coins) {
        System.out.println(coins.get(j));
    }
for (Integer j : coins) {
    System.out.println(j);
}

问题出在 forEach 循环中。它应该是:

for (Integer j : coins) {
           // System.out.println(coins.get(j));
            System.out.println(j);
        }
j的值

将是coins的每个元素的值,而不是像javascript中那样的索引值。

用:

for (Integer j : coins) {
    System.out.println(j);
}

或者在许多方面更糟:

for (int i = 0; i < coins.size(); i++) {
    System.out.println(coins.get(i));
}

当你这样做时:

for (Integer j : coins)

这就像做:

for (Iterator<Integer> itr = coins.iterator(); itr.hasNext();) {
   Integer j = itr.next();
}

如您所见,j已经具有所需的值。

有关更多详细信息,请参阅文档。

最新更新