站点微信订阅号zhengjinyibu,欢迎大家搜索关注.
foreach可以遍历iterable接口
foreach循环在简洁性与预防bug方面有着传统的for循环无法比拟的优势.
除了一下情况:
过滤- 将删除特定元素remove方法
转换- 使用列表迭代器或者数组索引,以便设定元素的值
平行迭代- 如果并行遍历多个集合,就需要显示的控制迭代器和索引变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| package book.effectiveJava;
import java.util.ArrayList; import java.util.Iterator; import java.util.List;
public class e_46PreferForeach {
public static void main(String[] args) throws Exception {
iteratorReplaceEle();
iteratorNextMethod();
}
private static void iteratorReplaceEle() { List<String> ele =new ArrayList<>(); ele.add("1"); ele.add("2"); for(Iterator<String> iterator = ele.iterator();iterator.hasNext();){ String num = iterator.next(); if(num.equalsIgnoreCase("2")){ iterator.remove(); } System.out.println(num); } System.out.println("iteratorReplaceEle "+ele.size()); }
private static void iteratorNextMethod() throws Exception { List<String> list =new ArrayList<>(); list.add("1"); list.add("2"); list.add("3");
Iterator<String> iterator =list.iterator();
System.out.println(iterator.next()); Thread.sleep(1000); System.out.println(iterator.next()); Thread.sleep(1000); System.out.println(iterator.next());
Thread.sleep(1000); System.out.println(iterator.next()); } }
|
本文内容仅作为作者个人兴趣与观点,不代表所在公司及团队的观点和决策。若有不恰当之处,请联系站长.