java 多种循环遍历集合方法

本文详细介绍了四种在Java中遍历数组和集合的方法,包括for循环、foreach、Iterator迭代器的while和for遍历,对比了它们的特点和适用场景。

学到的遍历数组方式有点多下面就总结几种遍历数组的方式,如:

  1. for循环遍历;
  2. foreach遍历;
  3. Iterator 迭代器while 遍历;
  4. Iterator迭代器for遍历;

下面用这四种遍历来遍历一个list集合:

创建一个list 集合,如:

第一种:for循环遍历;

一个用for ,一个while,但两者都差不多,典型就是换汤不换药那种;

第二种:foreach遍历;

Java5 引入了一种主要用于数组的增强型for循环。但需要注意一点:Java增强型for循环只能取值,不能赋值;

第三种:Iterator 迭代器while 遍历;

直接输出iterator.next(); 也是可以的;它本身就是字符串类型,再转换成字符串也一样是字符串;

第四种:Iterator迭代器for遍历;

下面是运行结果:

因为上面的循环结果都是一样的,这里就不一一列出来;

注意:

  1. 迭代器的类是import java.util.Iterator;不要应用错了;
  2. foreach遍历是增强型for循环,主要用于数组,也可以用于集合,只是比较少;一般都用迭代器去遍历集合;

代码:

public static void main(String[] args) {
        List<String> list=new ArrayList<String>();
        list.add("小黄");
        list.add("小红");
        list.add("小白");
        list.add("小绿");
        list.add("小黑");
        
        //while循环
        int e=0;
        while (e < list.size()) {
            System.out.println(list.get(e));
            e++;
        }
        //for循环
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        //foreach循环(for循环增强)
        for(String str: list){
            System.out.println(str);
            list.add("小");
        }
        //while迭代器
        Iterator<String> iterator= list.iterator();
        while (iterator.hasNext()) {// iterator.hasNext()判断是否有下一个元素
            String string = (String) iterator.next();// iterator.next()获取下一个
            System.out.println(string);
        }
        //for迭代器
        for (Iterator<String> iterator2 = list.iterator(); iterator2.hasNext();) {
            String string = iterator2.next();
            System.out.println(string);
        }
    }

 

Java循环遍历多种方法,下面为你详细介绍: ### for each循环遍历数组 for each循环可以方便地遍历数组,以下是示例代码: ```java public class ForEachLoopDemo { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; for (int number : numbers) { System.out.println(number); } } } ``` 在这个示例里,通过for each循环依次取出数组`numbers`中的每个元素并打印输出[^1]。 ### forEach方法Java 8引入) Java 8引入的forEach方法通过函数式接口简化遍历,支持链式操作,代码简洁,还可扩展为复杂逻辑(如过滤、映射),适用于函数式风格的集合操作。示例代码如下: ```java import java.util.Arrays; import java.util.List; public class ForEachExample { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); // 完整写法 list.forEach(item -> System.out.println(item)); // 简写形式 list.forEach(System.out::println); } } ``` 上述代码中,使用forEach方法对`list`集合进行遍历,分别展示了完整写法和简写形式[^4]。 ### 常见集合遍历 遍历集合方法有很多,不同方法有独特的优缺点和适用场景。虽然没有给出集合遍历的具体示例代码,但不同集合(如`List`、`Set`、`Map`)有不同的遍历方式,例如`List`可以使用for循环、迭代器等方式遍历;`Map`可以使用`entrySet()`、`keySet()`等方式遍历。以`List`使用迭代器遍历为例: ```java import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListIteratorExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("cherry"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } } ``` ### 循环遍历类属性 在Java循环遍历中,如果直接修改遍历对象可能会报异常。例如: ```java import java.util.ArrayList; import java.util.List; class ShopBaseInfo { private int id; public ShopBaseInfo(int id) { this.id = id; } public int getId() { return id; } } public class LoopModifyExample { public static void main(String[] args) { List<ShopBaseInfo> sourceList = new ArrayList<>(); sourceList.add(new ShopBaseInfo(1)); sourceList.add(new ShopBaseInfo(5)); sourceList.add(new ShopBaseInfo(3)); // 以下代码会报异常 for (ShopBaseInfo sp : sourceList) { if (sp.getId() == 5) { sourceList.remove(sp); } } } } ``` 上述代码尝试在for each循环中直接移除集合中的元素,会抛出异常,在实际开发中需要采用合适的方式来避免这种情况,比如使用迭代器来安全地移除元素[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值