迭代 (遍历), 将集合元素迭代,目的是取出元素.
迭代器
Collection根接口,提供了一个迭代器规范,**[iterator](../../java/util/Collection.html#iterator())**(),调用该方法会返回一个集合元素上的
public static void main(String[] args) {
Collection<String> c = new ArrayList<>();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
c.add("e");
// 获得迭代器(这个迭代器里面就会拥有所有的元素)
Iterator<String> iterator = c.iterator();
// 判断有没有下一个
while(iterator.hasNext()) {
String e = iterator.next(); // 取出下一个元素
System.out.println(e );
}
// 现在不使用泛型,再来一遍,感受泛型的好处
}
迭代器,通过这个迭代器就可以获得集合元素
迭代器的特点
1、迭代器迭代完成之后,迭代器的位置在最后⼀位。 所以迭代器只能迭代⼀次
2、迭代器在迭代的时候,不要调⽤多次next⽅法,可能会出错NoSuchElementException
3、在迭代器迭代的时候,不能向集合中添加或者删除元素 ,否则报错ConcurrentModificationException (除非使用迭代器自己的方法进行删除/添加)
增强for循环
/语法
for(数据类型 变量名: 要遍历的集合/数组){
}
左侧的数据类型 变量名要根据集合/数组来定,变量是每次循环都代表1个集合元素或者数组元素.不是下标
public static void main(String[] args) {
Collection<String> c = new ArrayList<>();
c.add("a1");
c.add("b1");
c.add("c1");
c.add("d1");
c.add("e1");
// 迭代
for(String s : c) {
System.out.println(s );
}
// 使用foreach遍历数组
int[] arr = {1,2,3,4,5};
for(int i: arr){
System.out.println(i );
}
}