foreach:
格式:
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
好处:
a. 简化数组和集合的遍历操作
b. 增强代码的可读性
坏处:
a. 不能够修改数组和集合,只能查找元素
b. 无法遍历部分元素
c. 没有索引信息,不能够操作索引
底层实现:
a. 遍历对数组进行了特殊处理
b. 集合使用的还是迭代器
问题:哪些对象可以用应用foreach循环?
数组和实现了Iterable接口的对象
Iterable接口
Iterator iterator()
Iterable
|-- Collection
public class ForeachDemo1 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
/* for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}*/
// 简洁,并且可读性更好
for(int i : arr) {
System.out.println(i);
}
List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
list.add("java");
/*for(Iterator<String> it = list.iterator(); it.hasNext(); ) {
String s = it.next();
System.out.println(s);
}*/
for(String s : list) {
System.out.println(s);
}
// for(String s : list) {
// if ("hello".equals(s)) list.remove(s);
// }
}
}