java 中 使用冒號 for 循環

   在for循環中使用冒號,是JAVA1.5 增強的for 循環的新特性:enhanced for loop。

      所謂“增強的for 循環”,主要也是針對容器的。使用該項特性時,開發者可以將“利用iterator 遍歷容器”的邏輯交給編譯器來處理。例如下列代碼:
void cancelAll(Collection c) {
for (Iterator i = c.iterator(); i.hasNext(); ) {
TimerTask tt = (TimerTask) i.next();
tt.cancel();
}
}
可以用增強的for 循環改寫爲:
void cancelAll(Collection c) {
for (Object o : c)
((TimerTask)o).close();
}
編譯器判斷對象c 是一個Collection 子對象(即是容器)之後,就會允許使用增強的for 循環
形式,並自動取到c 的迭代器,自動遍歷c 中的每個元素。
可以看到,上面的代碼中仍然有一個強制類型轉換(((TimerTask)o).close();)。實際上,這
項特性應該普遍地與泛型結合,以獲得最大的利益。結合泛型之後,上述代碼變成:
void cancelAll(Collection c) {
for (TimerTask task : c)
task.cancel();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章