目录
方式一:Iterator迭代器遍历
(1).主要用于遍历Collection集合中的元素
(2).所有实现了Collection接口的集合类都有一个Iterator()方法,用以返回
一个实现了Iterator接口的对象,即返回一个迭代器
(3).仅用于遍历集合,IteratorI本身并不存放对象
Iterator(迭代器)遍历运行流程:
(1).先得到该对象对应的迭代器
(2).使用while循环,判断是否还有数字(itit快捷键)
(3.)当退出while循环时,这时teration已执指向最后元素
(4)再次遍历需重置我们的迭代器
应用例题如下
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionIterator {
public static void main(String[] args) {
Collection col = new ArrayList();
col.add(new Book("小猪快跑","小欧",44.6));
col.add(new Book("小猪快溜","小车",44.6));
col.add(new Book("小猪快走","小杰",44.6));
//Iterator遍历输出
//(1).先得到col对应的迭代器
Iterator iterator = col.iterator();
//(2)使用while循环,判断是否还有数字(itit快捷键)
while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println("obj="+obj);
}
//(3).当退出while循环时,这时teration已执指向最后元素
//iterator.next();//NoSuchElementException
//(4)再次遍历需重置我们的迭代器
iterator=col.iterator();
System.out.println("第二次遍历");
while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println("obj="+obj);
}
}
运行结果:
obj=Book{name='小猪快跑', author='小欧', price=44.6}
obj=Book{name='小猪快溜', author='小车', price=44.6}
obj=Book{name='小猪快走', author='小杰', price=44.6}
第二次遍历
obj=Book{name='小猪快跑', author='小欧', price=44.6}
obj=Book{name='小猪快溜', author='小车', price=44.6}
obj=Book{name='小猪快走', author='小杰', price=44.6}
方式二:增强for遍历
(1)使用增强for,在Collection集合
(2)增强for的底层仍然时迭代器
(3)增强for可以理解成简化版本的迭代器
快捷方式(I)
应用例题如下:
import java.util.ArrayList;
import java.util.Collection;
public class CollectionFor {
public static void main(String[] args) {
Collection col = new ArrayList();
col.add(new Book("小猪快跑","小欧",44.6));
col.add(new Book("小猪快溜","小车",44.6));
col.add(new Book("小猪快走","小杰",44.6));
//(1)使用增强for,在Collection集合
//(2)增强for的底层仍然时迭代器
//(3)增强for可以理解成简化版本的迭代器
//快捷方式(I)
for (Object book:col){
System.out.println("book="+book);
}
//增强for也可以在数组中使用
int [] nums={1,4,5,7};
for (int i:nums){
System.out.println("i="+i);
}
}
}
运行结果:
book=Book{name='小猪快跑', author='小欧', price=44.6}
book=Book{name='小猪快溜', author='小车', price=44.6}
book=Book{name='小猪快走', author='小杰', price=44.6}
i=1
i=4
i=5
i=7
使用Iterator迭代器和增强For两种方式遍历练习题:
1.创建2个Dog(name,age)对象,放入ArrayList中,赋给List引用
2.重写Dog的toString方法,输出name和age
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class CollectionExercise {
public static void main(String[] args) {
List list = new ArrayList();
list.add(new Dog("小o",22));
list.add(new Dog("小h",22));
System.out.println("迭代器iterator遍历:");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object obj= iterator.next();
System.out.println("obj="+obj);
}
System.out.println("增强for遍历:");
for (Object dog :list) {
System.out.println("dog="+dog);
}
}
}
class Dog{
private String name;
private int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
运行结果:
迭代器iterator遍历:
obj=Dog{name='小o', age=22}
obj=Dog{name='小h', age=22}
增强for遍历:
dog=Dog{name='小o', age=22}
dog=Dog{name='小h', age=22}