erator.next();
System.out.println(next);
}
//3. 当退出while循环后,这时 iterator迭代器 指向了最后的元素
//iterator.next();//这里再使用next()就会抛出异常java.util.NoSuchElementException
//4. 如果希望再次遍历,就需要重置iterator迭代器
iterator = col.iterator();
System.out.println("第二次遍历");
while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println(obj);
}
}
}
class Book{
private String name;
private String author;
private double price;
public Book(String name, String author, double price) {
this.name = name;
this.author = author;
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
}
/*
运行结果:
Book{name='三国演义', author='罗贯中', price=10.1}
Book{name='红楼梦', author='曹雪芹', price=20.1}
Book{name='西游记', author='吴承恩', price=30.1}
第二次遍历
Book{name='三国演义', author='罗贯中', price=10.1}
Book{name='红楼梦', author='曹雪芹', price=20.1}
Book{name='西游记', author='吴承恩', price=30.1}
*/
四、Collection接口遍历元素方式2 —— for循环增强
增强for循环,可以代替iterator迭代器。
特点:增强for就是简化版的iterator,本质一样,foreach的底层就是迭代器。只能用于遍历集合或数组。
-
基本语法: //for( 元素类型 元素名 : 集合名或数组名){
// 访问元素
//}
for (Object object : col){
System.out.println(object);
}
-
案例演示: import java.util.ArrayList;
import java.util.Collection;
public class CollectionFor {
@SuppressWarnings({"all"})
public static void main(String[] args) {
Collection col = new ArrayList();
col.add(new Book("三国演义","罗贯中",10.1));
col.add(new Book("红楼梦","曹雪芹",20.1));
col.add(new Book("西游记","吴承恩",30.1));
//1. 使用增强for循环,在Collection集合
//2. 增强for,底层仍然是迭代器
//3. 增强for可以理解成就是简化版的迭代器
for(Object book: col){
System.out.println(book);
}
//增强for,也可以直接在数组使用
int[] nums = {1,2,3,4,5,6};
for (int i : nums){
System.out.println(i);
}
//增强for 快捷键:I 或 col.for
}
}
/*
运行结果:
Book{name='三国演义', author='罗贯中', price=10.1}
Book{name='红楼梦', author='曹雪芹', price=20.1}
Book{name='西游记', author='吴承恩', price=30.1}
1
2
3
4
5
6
*/
|