【集合遍历详细讲解】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);
        }
    }
相关推荐
脑子慢且灵14 分钟前
【JavaWeb】一个简单的Web浏览服务程序
java·前端·后端·servlet·tomcat·web·javaee
hope_wisdom14 分钟前
C/C++数据结构之栈基础
c语言·数据结构·c++··stack
B612 little star king36 分钟前
力扣29. 两数相除题解
java·算法·leetcode
野犬寒鸦37 分钟前
力扣hot100:环形链表(快慢指针法)(141)
java·数据结构·算法·leetcode·面试·职场和发展
上官浩仁42 分钟前
springboot synchronized 本地锁入门与实战
java·spring boot·spring
Gogo81644 分钟前
java与node.js对比
java·node.js
SmartJavaAI1 小时前
Java调用Whisper和Vosk语音识别(ASR)模型,实现高效实时语音识别(附源码)
java·人工智能·whisper·语音识别
m0_748461391 小时前
Spring Boot + Vue 项目中使用 Redis 分布式锁案例
vue.js·spring boot·redis
山东小木1 小时前
JBoltAI需求分析大师:基于SpringBoot的大模型智能需求文档生成解决方案
人工智能·spring boot·后端·需求分析·jboltai·javaai·aigs
用户3721574261351 小时前
Python 高效实现 Word 转 PDF:告别 Office 依赖
java