【集合遍历详细讲解】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);
        }
    }
相关推荐
总是学不会.13 分钟前
EasyExcel 使用指南:基础操作与常见问题
java·开发语言·数据库·后端·mysql
️○-17 分钟前
后端之JPA(EntityGraph+JsonView)
java·数据库·后端·数据库架构
m0_7482409118 分钟前
Docker部署Spring Boot + Vue项目
vue.js·spring boot·docker
有时间要学习20 分钟前
数据结构——栈和队列
数据结构
461K.32 分钟前
linux 编辑器
java·linux·运维·服务器·ide·scala·intellij-idea
疯狂小伟哥35 分钟前
文件上传-Windows点空格点绕过
java·docker·容器
啾啾Fun43 分钟前
[java基础-JVM篇]3_JVM类加载机制
java·开发语言·jvm
大大。1 小时前
微信小程序 左右滑动块,自定义的switch组件,带文字状态的开关
java·前端·javascript
找了一圈尾巴1 小时前
Spring Boot 概要(官网文档解读)
java·spring boot·架构
库库林_沙琪马1 小时前
Spring Boot Validation 接口校验:从零到掌握
java·前端·spring boot