List,Map 三种遍历方式:(总结理解)

简介: List,Map 三种遍历方式:(总结理解)
package com.example.democrud.democurd.Prototype.demo01;
import java.util.*;
public class Demo4 {
    public static void main(String[] args) {
        // List的三种遍历方式:
        listTest();
        System.out.println("------------------方法分割-----------------------");
        //Map的三种遍历方式:
        mapTest();
    }
    public static void mapTest() {
        HashMap<String, String> map = new HashMap<>();
        map.put("孙悟空", "老大");
        map.put("猪八戒", "老三");
        map.put("唐三藏", "老二");
        map.put("沙悟净", "老四");
        //表示将map对象的所有key值已set集合的形式返回
        Set<String> set = map.keySet();
        for (String s : set) {
            //s就是key的值 s1是value
            String s1 = map.get(s);
            System.out.println("键:" + s + "- 值:" + s1);
        }
        System.out.println("-----------------------------");
        /**
         * entrySet()
         将原有Map集合中的键值作为一个整体返回Set集合
         再将包含键值对对象的Set集合转化为Iterator接口对象,
         然后获取集合中的所有的键值对映射关系,
         在从映射关系中取出键和值
         *
         */
        Set<Map.Entry<String, String>> set01 = map.entrySet();
        for (Map.Entry<String, String> entry : set01) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println("键:" + key + "- 值:" + value);
        }
        System.out.println("-----------------------------");
/**
 * map.entrySet().iterator();
 * 首先是map.entrySet()是把HashMap类型的数据转换成集合类型;
 * 然后是获得map的迭代器,用作遍历map中的每一个键值对;
 * iterator()是去获得这个集合的迭代器,保存在iter里面;
 */
        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, String> next = iterator.next();
            String key = next.getKey();
            String value = next.getValue();
            System.out.println("键:" + key + "- 值:" + value);
        }
        System.out.println("-----------------------------");
        System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
        for (String v : map.values()) {
            System.out.println("value= " + v);
        }
    }
    public static void listTest() {
        List<String> list = new ArrayList<>();
        list.add("孙悟空");
        list.add("唐三藏");
        list.add("猪八戒");
        list.add("沙悟净");
        String string = list.toString();
        System.out.println(string);
        System.out.println("-----------------------------");
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("-----------------------------");
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
        System.out.println("-----------------------------");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            System.out.println(next);
        }
    }
}

运行结果如下:

[孙悟空, 唐三藏, 猪八戒, 沙悟净]
-----------------------------
孙悟空
唐三藏
猪八戒
沙悟净
-----------------------------
孙悟空
唐三藏
猪八戒
沙悟净
-----------------------------
孙悟空
唐三藏
猪八戒
沙悟净
------------------方法分割-----------------------
键:孙悟空- 值:老大
键:沙悟净- 值:老四
键:猪八戒- 值:老三
键:唐三藏- 值:老二
-----------------------------
键:孙悟空- 值:老大
键:沙悟净- 值:老四
键:猪八戒- 值:老三
键:唐三藏- 值:老二
-----------------------------
键:孙悟空- 值:老大
键:沙悟净- 值:老四
键:猪八戒- 值:老三
键:唐三藏- 值:老二
-----------------------------
通过Map.values()遍历所有的value,但不能遍历key
value= 老大
value= 老四
value= 老三
value= 老二


相关文章
|
2月前
|
Go
go语言中遍历映射(map)
go语言中遍历映射(map)
60 8
|
30天前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
61 18
你对Collection中Set、List、Map理解?
|
23天前
|
存储 缓存 安全
只会“有序无序”?面试官嫌弃的List、Set、Map回答!
小米,一位热衷于技术分享的程序员,通过与朋友小林的对话,详细解析了Java面试中常见的List、Set、Map三者之间的区别,不仅涵盖了它们的基本特性,还深入探讨了各自的实现原理及应用场景,帮助面试者更好地准备相关问题。
56 20
|
5月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
19天前
|
Java 机器人 程序员
从入门到精通:五种 List 遍历方法对比与实战指南
小米是一位热爱分享技术的程序员,本文详细介绍了 Java 中遍历 List 的五种方式:经典 for 循环、增强 for 循环、Iterator 和 ListIterator、Stream API 以及 forEach 方法。每种方式都有其适用场景和优缺点,例如 for 循环适合频繁访问索引,增强 for 循环和 forEach 方法代码简洁,Stream API 适合大数据量操作,ListIterator 支持双向遍历。文章通过生动的小故事和代码示例,帮助读者更好地理解和选择合适的遍历方式。
45 2
|
1月前
|
Go
go语言for遍历映射(map)
go语言for遍历映射(map)
37 12
|
2月前
|
存储 Go
go语言 遍历映射(map)
go语言 遍历映射(map)
41 2
|
7月前
|
Dart
Dart之集合详解(List、Set、Map)
Dart之集合详解(List、Set、Map)
|
7月前
|
索引
List集合(方法简介,集合遍历)
List集合(方法简介,集合遍历)
|
3月前
|
Java 程序员 编译器
Java|如何正确地在遍历 List 时删除元素
从源码分析如何正确地在遍历 List 时删除元素。为什么有的写法会导致异常,而另一些不会。
57 3