我是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
已经具有所需的值。
有关更多详细信息,请参阅文档。