目标:Collection集合的遍历方式
遍历:
一个一个的访问一遍元素,遍历很重要,开发中很多业务都要遍历实现。
Collection集合的功能是全部集合都可以直接使用的。
Collection遍历方式有三种:
(1)迭代器。
(2)foreach遍历(增强for循环):是迭代器的简化写法。
(3)JDK 1.8开始之后的新技术:Lambda表达式。(了解)
迭代器遍历集合的步骤;
– 先获取当前被遍历集合的迭代器对象。
方法:Iterator iterator()
代码:Iterator it = names.iterator();
– 定义一个while循环遍历, 先通过it.hasNext()问是否有下一个元素
有就通过it.next()取出下一个元素返回,如果没有循环结束。
方法:boolean hasNext():询问是否有下一个元素,有返回true ,没有返回false.
方法:E next():取出下一个元素返回。
小结:
迭代器遍历是先得到集合的迭代器对象,然后通过迭代器对象询问是否有下一个元素,有就取出来。
foreach遍历优点:方便简单。
foreach遍历的缺点:无法知道当前遍历到了哪个元素位置。
Collection集合的遍历方式是全部集合都可以用的。
public class CollectionDemo01 {
public static void main(String[] args) {
Collection<String> names = new ArrayList<>();
names.add("赵敏");
names.add("张无忌");
names.add("殷素素");
names.add("小昭");
System.out.println(names);
// names = [赵敏, 张无忌, 殷素素,小昭]
// it
// 1.开始获取集合的迭代器遍历集合
Iterator<String> it = names.iterator();
/*System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());*/
// System.out.println(it.next()); // NoSuchElementException没有此元素异常
// 2.定义一个while循环遍历集合
while(it.hasNext()){
String ele = it.next();
System.out.println(ele);
}
}
}
foreach遍历(增强for循环):
是迭代器的简化写法。
关键是记住遍历格式:
for(被遍历集合或者数组中元素的类型 变量 : 被遍历集合或者数组 ){
}
public class CollectionDemo02 {
public static void main(String[] args) {
Collection<String> names = new ArrayList<>();
names.add("赵敏");
names.add("张无忌");
names.add("殷素素");
names.add("小昭");
System.out.println(names);
// names = [赵敏, 张无忌, 殷素素,小昭]
// ele
for(String ele : names){
System.out.println(ele);
}
}
}
JDK 1.8开始之后的新技术:
Lambda表达式。(了解)
public class CollectionDemo03 {
public static void main(String[] args) {
Collection<String> names = new ArrayList<>();
names.add("赵敏");
names.add("张无忌");
names.add("殷素素");
names.add("小昭");
System.out.println(names);
// names = [赵敏, 张无忌, 殷素素,小昭]
// ele
// JDK 1.8开始之后的新技术:Lambda表达式
names.forEach(ele -> {
System.out.println(ele);
});
}
}