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月前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)
|
4月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
24 0
|
4月前
|
Java 程序员
Java集合框架:List、Set、Map类型及泛型详解
Java集合框架:List、Set、Map类型及泛型详解
|
6天前
|
Java API
List转Map(id为key,list为value)
List转Map(id为key,list为value)
8 0
|
15天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
1月前
|
存储 C语言 C++
C++中STL常用容器(vector、deque、list、map、set)一文带你了解
C++中STL常用容器(vector、deque、list、map、set)一文带你了解
如何使用Stream流将List转换为Map
如何使用Stream流将List转换为Map
|
4月前
|
Java 索引
java8流处理器list转map的对比
java8流处理器list转map的对比
33 0
|
4月前
|
存储 Java API
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
27 0
|
4月前
|
Java 测试技术
List<实体类>转map<String,String>及重复处理
List<实体类>转map<String,String>及重复处理
33 0