在《数据结构与算法(java版)》(《Data structures and algorithms in java》) 中 有这样一段代码
private Stack<Card> [] stacks;public void deal(){
for(Stack<Card> s:stacks)
s.push(deck.deal());
}请问for循环中的 冒号 是什么意识这个for循环是不是 和 foreach 循环的结果一样啊?
谢谢
private Stack<Card> [] stacks;public void deal(){
for(Stack<Card> s:stacks)
s.push(deck.deal());
}请问for循环中的 冒号 是什么意识这个for循环是不是 和 foreach 循环的结果一样啊?
谢谢
它在底层是使用的迭代子(Iterator)循环的方式(数组除外) 支持的是数组和Collection(包括List和Set等) 也存在迭代子循环在多线程的即时失败的异常
void cancelAll(Collection c) {
for (Object o : c)
((TimerTask)o).close();
}
当然,如果用for的序号循环方式,可以用倒序。这样在remove之后向前循环不会导致漏过下一元素。