for-each 循环
for-each 循环(官方称为成为增强的 for 语句),完全的隐藏迭代器或者索引变量,避免出错的可能。
copy
- for(Element e : elements) {
- ...//Do something with e
- }
这个冒号(:)可以把读作 “在...... 里面”,利用 for-each 循环不会有性能损失。
针对于传统的 for 循环可能会换这样的错误
copy
- enum Face {ONE,TWO,THREE,FOUR,FIVE,SIX}
- ...
- Collection<Face> faces = EnumSet.allof(face.class);
- for(Iterator<FAce> i = faces.iterator(); i.hasNext();)
- for(Iterator<Face> j = faces.iterator(); j.hasNext(); )
- System.out.println(i.next() + " " + j.next());
这个程序只能打印 6 个重复的词(从 “ONE ONE” 到 “SIX SIX”),而不是预计的那 36 中组合
三种无法使用 for-each 循环
1、解构过滤 —— 如果需要遍历集合,并删除选定元素,就需要显示的迭代器
2、转换 —— 如果遍历列表和数组,并取代它的部分值或全部。
3、平行迭代 —— 并行遍历多个集合,就需要显示控制迭代器或索引变化
总而言之,for-each 循环在简洁性、灵活性、出错预防行方面都占有绝对优势,并且没有性能的惩罚,因此,有选择时,建议使用 for-each 循环
一个 for-each 有啥好写的
来踩一踩
大佬快学习::quyin:cry::