Collection集合的遍历方式
Collection集合的遍历方式是全部集合都可以直接使用的
Collection集合的遍历方式有三种:
(1)迭代器。
(2)foreach(增强for循环)。
(3)Lambda表达式(JDK 1.8开始之后)
(1)、Collection集合的遍历–迭代器遍历集合
方法:public Iterator iterator()
方法的作用:获取集合对应的迭代器,用来遍历集合中的元素的
E next():获取下一个元素值!
boolean hasNext():判断是否有下一个元素,有返回true ,反之。
流程:
1.获取当前集合的迭代器
Iterator it = lists.iterator();
2.定义一个while循环,问一次取一次。
通过it.hasNext()询问是否有下一个元素,有就通过
it.next()取出下一个元素。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionDemo01 {
public static void main(String[] args) {
Collection<String> lists = new ArrayList<>();
lists.add("赵敏");
lists.add("小昭");
lists.add("殷素素");
lists.add("周芷若");
System.out.println(lists);
//[赵敏, 小昭, 殷素素, 周芷若]
//1、得到集合的迭代器对象
Iterator<String> it = lists.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);
}
}
}
(2)、Collection集合的遍历–foreach
foreach:增强for循环遍历集合。
foreach是一种遍历形式,可以遍历集合或者数组。
foreach遍历集合实际上是迭代器遍历的简化写法。
foreach格式:
for(被遍历集合或者数组中元素的类型 变量名称 : 被遍历集合或者数组){
}
缺点:foreach遍历无法知道遍历到了哪个元素了,因为没有索引。
package _01Collection集合的遍历方式;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo02 {
public static void main(String[] args) {
Collection<String> lists = new ArrayList<>();
lists.add("赵敏");
lists.add("小昭");
lists.add("殷素素");
lists.add("周芷若");
for (String ele:lists) {
System.out.println(ele);
}
int[] ages = new int[]{17, 18, 38, 21};
for (int age:ages){
System.out.println(age);
}
}
}
(3)、Collection集合的遍历–Lambda表达式
package _01Collection集合的遍历方式;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo02 {
public static void main(String[] args) {
Collection<String> lists = new ArrayList<>();
lists.add("赵敏");
lists.add("小昭");
lists.add("殷素素");
lists.add("周芷若");
for (String ele:lists) {
System.out.println(ele);
}
int[] ages = new int[]{17, 18, 38, 21};
for (int age:ages){
System.out.println(age);
}
}
}
(3)、Collection集合的遍历–Lambda表达式
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo03 {
public static void main(String[] args) {
Collection<String> lists = new ArrayList<>();
lists.add("赵敏");
lists.add("小昭");
lists.add("殷素素");
lists.add("周芷若");
//跟forEach遍历类似
lists.forEach(s -> {
System.out.println(s);
});
//等价于下面的
// lists.forEach(s -> System.out.println(s));
// lists.forEach(System.out::println);
}
}