【集合遍历详细讲解】Map、List、Set的遍历方式

这篇文章让你彻底理解集合的遍历方式,以及实现的方法 !!!

制作不易,觉得不错请点赞收藏哟 !!!

为什么要收藏呢,因为我觉得,编程这东西,如果没经常涉及到这方面的知识,

大概率过几天就会忘记 !!!

目录

1.Map增强For循环的三种遍历方式

[1.1 键找值](#1.1 键找值)

[1.2 键值对](#1.2 键值对)

[1.3 Lambda遍历](#1.3 Lambda遍历)

2.Map迭代器Iterator的三种遍历方式

3.Stream流遍历

[3.1 遍历keySet](#3.1 遍历keySet)

[3.1 遍历entrySet](#3.1 遍历entrySet)

4.List集合的三种遍历方式

[4.1 迭代器遍历](#4.1 迭代器遍历)

[4.2 增强For循环遍历](#4.2 增强For循环遍历)

[4.3 普通for循环遍历](#4.3 普通for循环遍历)

5.Set集合的两种遍历方式

[5.1 增强For循环](#5.1 增强For循环)

[5.2 迭代器遍历](#5.2 迭代器遍历)


【mysql之基础篇】mysql基本操作详解版-CSDN博客文章浏览阅读1.1k次,点赞24次,收藏14次。外键(Foreign Key)是关系数据库中的一个重要概念,用于建立表与表之间的关联关系。在关系数据库中,数据通常分布在多个表中,外键定义了一个表中的列(或多列)与另一个表中的列之间的关系。存储引擎(Storage Engine)是负责管理表的存储和检索的组件,它们之间有不同的特性、优缺点以及适用场景事务支持:InnoDB 支持事务,这意味着它提供了 ACID(原子性、一致性、隔离性、持久性)特性。行级锁定:InnoDB 使用行级锁定来管理并发访问,这使得它在高并发环境中表现良好。https://blog.csdn.net/2301_77358195/article/details/137121480

1.Map增强For循环的三种遍历方式

1.1 键找值

通过keySet()获取集合中所有的键,然后遍历Set<String> keys = maps.keySet(),

再通过get(key) 获取对应的值

java 复制代码
@Test
    public void testMap01() {
        Map<String, Integer> map = new HashMap<>();
        map.put("小米手机", 1000);
        map.put("苹果手机", 3000);
        map.put("荣耀手机", 2000);

        //第一种
        Set<String> keys = map.keySet();
        for (String key : keys) {
            System.out.println(key + "--" + map.get(key));
        }
    }

1.2 键值对

先通过entrySet方法把Map集合转换成Set集合,Set集合中每个元素都是键值对实体类型了(将键和值看成一个整体)。

遍历获取到的Set集合,然后通过getKey提取键, 以及getValue提取值。

java 复制代码
@Test
    public void testMap02() {
        Map<String, Integer> map = new HashMap<>();
        map.put("小米手机", 1000);
        map.put("苹果手机", 3000);
        map.put("荣耀手机", 2000);

        //第二种
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            System.out.println(entry.getKey() + "--" + entry.getValue());
        }
    }

1.3 Lambda遍历

java 复制代码
@Test
    public void testMap03() {
        Map<String, Integer> map = new HashMap<>();
        map.put("小米手机", 1000);
        map.put("苹果手机", 3000);
        map.put("荣耀手机", 2000);

        //第三种
        map.forEach(new BiConsumer<String, Integer>() {
            @Override
            public void accept(String s, Integer integer) {
                System.out.println(s + "--" + integer);
            }
        });

    }

下面是更简单的方式

java 复制代码
@Test
    public void testMap03() {
        Map<String, Integer> map = new HashMap<>();
        map.put("小米手机", 1000);
        map.put("苹果手机", 3000);
        map.put("荣耀手机", 2000);

        //第三种
        maps.forEach((key, value) -> System.out.println(key + "--->" + value));

    }

2.Map迭代器Iterator的三种遍历方式

因为都是跟上面一样的所以就直接给代码

java 复制代码
 @Test
    public void testMap04() {
        Map<String, Integer> map = new HashMap<>();
        map.put("小米手机", 1000);
        map.put("苹果手机", 3000);
        map.put("荣耀手机", 2000);

        Iterator<String> iterator = map.keySet().iterator();
        while (iterator.hasNext()){
            String key = iterator.next();
            System.out.println(key + "--" + map.get(key));
        }
    }
java 复制代码
@Test
    public void testMap05() {
        Map<String, Integer> map = new HashMap<>();
        map.put("小米手机", 1000);
        map.put("苹果手机", 3000);
        map.put("荣耀手机", 2000);
        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<String, Integer> next = iterator.next();
            System.out.println(next.getKey() + "--" + next.getValue());
        }
    }

3.Stream流遍历

3.1 遍历keySet

java 复制代码
@Test
    public void testMap12() {
        Map<String, Integer> map = new HashMap<>();
        map.put("小米手机", 1000);
        map.put("苹果手机", 3000);
        map.put("荣耀手机", 2000);
        // 使用stream()方法将Map转换为流,然后进行遍历操作
        map.keySet().stream()
                .forEach(keySet -> System.out.println(keySet + "--" + map.get(keySet)));
    }

3.1 遍历entrySet

java 复制代码
@Test
    public void testMap13() {
        Map<String, Integer> map = new HashMap<>();
        map.put("小米手机", 1000);
        map.put("苹果手机", 3000);
        map.put("荣耀手机", 2000);
        // 使用stream()方法将Map转换为流,然后进行遍历操作
        map.entrySet().stream()
                .forEach(entry -> System.out.println(entry.getKey() + "--" + entry.getValue()));
    }

4.List集合的三种遍历方式

4.1 迭代器遍历

java 复制代码
@Test
    public void testMap07() {
        List<String> list = new ArrayList<>();
        list.add("小米手机");
        list.add("荣耀手机");
        list.add("苹果手机");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String value = iterator.next();
            System.out.println(value);
        }
    }

4.2 增强For循环遍历

java 复制代码
@Test
    public void testMap08() {
        List<String> list = new ArrayList<>();
        list.add("小米手机");
        list.add("荣耀手机");
        list.add("苹果手机");
        for (String s : list) {
            System.out.println(s);
        }
    }

4.3 普通for循环遍历

java 复制代码
@Test
    public void testMap09() {
        List<String> list = new ArrayList<>();
        list.add("小米手机");
        list.add("荣耀手机");
        list.add("苹果手机");
        for (int i = 0;i < list.size();i++){
            System.out.println(list.get(i));
        }
    }

5.Set集合的两种遍历方式

5.1 增强For循环

java 复制代码
@Test
    public void testMap10() {
        Set<String> set = new HashSet<>();
        set.add("小米手机");
        set.add("荣耀手机");
        set.add("苹果手机");
        for (String s : set) {
            System.out.println(s);
        }
    }

5.2 迭代器遍历

java 复制代码
@Test
    public void testMap11() {
        Set<String> set = new HashSet<>();
        set.add("小米手机");
        set.add("荣耀手机");
        set.add("苹果手机");
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
    }
相关推荐
小bo波15 小时前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
用户35218024547516 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
nanxun8862 天前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103512 天前
Day01 | Java 基础(Java SE)
java
行者全栈架构师2 天前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师2 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_02 天前
mac(m5)平台编译openjdk
java
唐青枫3 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马3 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261353 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java