1.增强for循环(foreach):这种方式是最简单的,也是最易读的。它直接对集合中的每个元素进行操作,不需要额外的迭代器或索引变量。但是,这种方式不能在遍历过程中修改集合的结构(例如添加或删除元素)。
2.使用迭代器:迭代器提供了一种通用的遍历集合的方式,可以在遍历过程中修改集合的结构。但是,使用迭代器需要更多的代码,并且可能不如增强for循环直观。
3.使用ListIterator:ListIterator是迭代器的子接口,提供了在两个方向上遍历列表的能力,以及修改列表元素的能力。这种方式适用于List集合,因为List接口有顺序的概念,允许我们在列表中向前或向后移动。
4.使用toArray方法:将集合转换为数组后,可以使用传统的for循环来遍历。这种方式适用于任何类型的集合,但是需要额外的数组存储空间。
点击查看代码
package com.itheima.javase;
import java.util.*;
public class CollectionDemo1 {
public static void main(String[] args) {
Collection<User> userList=new ArrayList<>();
initUserList(userList);
traverseUserList(userList);
}
private static void traverseUserList(Collection<User> userList) {
// 使用Lambda表达式遍历并打印用户信息
userList.forEach(user -> System.out.println(user));
System.out.println("===================================================");
// 获取迭代器
Iterator<User> iterator = userList.iterator();
// 判断是否有下一个元素
while(iterator.hasNext()){
// 获取下一个元素
User user = iterator.next();
// 打印用户信息
System.out.println(user);
}
System.out.println("===================================================");
// 使用增强for循环遍历用户列表
for(User user: userList){
// 打印用户信息
System.out.println(user);
}
System.out.println("===================================================");
// 将用户列表转换为数组
Object[] objects = userList.toArray();
// 遍历数组
for(int i=0;i<objects.length;i++)
// 打印用户信息
System.out.println(objects[i]);
System.out.println("===================================================");
// 将用户列表转换为ArrayList
List<User> list = new ArrayList<>(userList);
// 获取列表迭代器
ListIterator<User> listIterator = list.listIterator();
// 判断是否有下一个元素
while(listIterator.hasNext()){
// 获取下一个元素
User user = listIterator.next();
// 打印用户信息
System.out.println(user);
}
System.out.println("===================================================");
}
private static void initUserList(Collection<User> userList) {
userList.add(new User("张三",25,"男"));
userList.add(new User("李四",23,"男"));
userList.add(new User("王五",24,"男"));
userList.add(new User("赵六",13,"男"));
}
}
class User{
private String name;
private int age;
private String gender;
public User() {
}
public User(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}