【集合遍历详细讲解】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);
        }
    }
相关推荐
m0_640743561 小时前
华为OD-2024年E卷-字符串分割[100分] -- python
数据结构·算法·华为od
sg_knight4 小时前
Spring Cloud LoadBalancer深度解析:官方负载均衡方案迁移指南与避坑实践
java·spring boot·spring·spring cloud·微服务·负载均衡
llwszx4 小时前
Spring Boot 整合 Spring AI 与 MCP 开发智能体工具指南
人工智能·spring boot·spring·智能体·spring ai·mcp
_何同学4 小时前
Ollama 安装 DeepSeek 与 Spring Boot 集成指南
java·spring boot·后端·ai
Code季风6 小时前
跨语言RPC:使用Java客户端调用Go服务端的HTTP-RPC服务
java·网络协议·http·rpc·golang
盖世英雄酱581366 小时前
时间设置的是23点59分59秒,数据库却存的是第二天00:00:00
java·数据库·后端
code喵喵6 小时前
八种数据结构简介
数据结构·算法·推荐算法
wen__xvn6 小时前
九日集训第三天
数据结构·算法·leetcode
clmm1237 小时前
Java动态生成Nginx服务配置
java·开发语言·nginx
东方芷兰7 小时前
Leetcode 刷题记录 17 —— 堆
java·c++·b树·算法·leetcode·职场和发展