[Java][单列集合遍历合集]以五种遍历方式谈单列集合

List系列集合的五种遍历方式:

1.迭代器遍历 Itrator
2.列表迭代器
3.增强for
4.Lambda表达式来简化forEach
5.普通for

java 复制代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.function.Consumer;

public class Main{
    public static void main(String[] args){
        /*
        List系列集合的五种遍历方式:
        1.迭代器遍历 Itrator
        2.列表迭代器
        3.增强for
        4.Lambda表达式来简化forEach
        5.普通for
         */
        //创建集合并且添加元素
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //1.迭代器
        Iterator<String> it =list.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }

        //2.增强for的遍历方式
        for(String s:list){
            System.out.println(s);//这里的s是一个第三方变量 用来临时储存并且打印的 依次表示集合中的每一个元素
        }

        //4.Lambda表达式
        list.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
        list.forEach(s->System.out.println(s));//这里是由匿名内部类修改的Lambda表达式形式出现的

       //5.普通for
       //size和get方法
       for(int i=0;i<list.size();i++){
           System.out.println(list.get(i));
       }

       //2.列表迭代器:是一个新的知识点
        //也称为 ListIterator 也是一个接口 相较于其他我们之前学习过的方法
        //我们现在来研究一下这个新的接口
        //ListIterator是一个Iterator的子接口
        //hasNext是原先一样的 Next是原先一样的
        //有一个add是新的方法
        //这里有hasPrevious和previous方法的方向是与hasNext和Next方向相反的
        //我们是不是回忆起了 这个在Iterator当中 移动到字符串最后一位就不会动了
        //如果你在list类型当中 你就可以使用previous和hasPrevious来回溯
        ListIterator<String> lit = list.listIterator();


       //在遍历的过程中可以添加元素 这是不同于Iterator的
       while(it.hasNext()){
           String str=it.next();
           if("bbb".equals(str)){
               //list.add("qqq");//这样是不可以的 不可以用集合来添加
               lit.add("qqq");//这样是可以的 你只能用迭代器本身的方法进行添加
           }

           System.out.println(str);

       }

    }
}
相关推荐
金融小师妹21 小时前
人工智能推演框架:非农降温信号如何重构黄金定价模型
数据结构·人工智能·机器学习·transformer
ysa0510301 天前
【并查集】判环,深搜
数据结构·c++·算法·深度优先
.Hypocritical.1 天前
数据结构笔记——链表成环/反转 + 有序二叉树(BST)构建、遍历、删除
java·数据结构
CSharp精选营6 天前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
刘马想放假9 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠10 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
Darling噜啦啦17 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
小小工匠18 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
玖玥拾18 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
Qres82118 天前
算法复键——树状数组
数据结构·算法