Map的常用操作方法

目录

map的操作方法

1.map.forEach((key,value)->{})

2.map.keySet()

3.map.values()

4.map.entrySet()

测试代码


map的操作方法

1.map.forEach((key,value)->{})

    通过forEach循环处理可以得到每一条中的key和value,进而进行下一步处理

2.map.keySet()

    通过keySet()方法可以得到map中所有key的集合,循环这个集合可以通过key取到value

3.map.values()

    通过values()方法可以得到map中所有key对应value的集合,循环这个集合可以得到每个value的值

4.map.entrySet()

    存放的是键值对的集合,可以通过循环得到key和value的值

5.测试代码

package test.map;

import test.strategy.inn2Impl;
import test.strategy.innTest;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author linaibo
 * @version 1.0
 * Create by 2022/8/21 13:33
 */

public class mapTest {
    public static void main(String[] args) {
        List<student> list = new ArrayList<>();
        list.add(new student(1, "张三"));
        list.add(new student(1, "李四"));
        list.add(new student(3, "王五"));
        list.add(new student(3, "赵六"));
        list.add(new student(5, "小七"));
        Map<Integer, List<student>> map = list.stream().collect(Collectors.groupingBy(student::getId));
        map.forEach((key, value) -> {
            System.out.println(key);
            value.forEach(val -> {
                System.out.print(val.getId());
                System.out.println(val.getName());
            });
        });
        System.out.println("------------------");
        Set<Map.Entry<Integer, List<student>>> maoo = map.entrySet();
        maoo.forEach(item -> {
            System.out.println(item.getKey());
            System.out.println(item.getValue());
        });
        Set<Integer> set = map.keySet();
        set.forEach(s -> {
            System.out.println(s);
        });
        System.out.println("----------");
        Collection<List<student>> values = map.values();
        System.out.println("********");
        System.out.println(values);
        values.forEach(item->{
            item.forEach(i->{
                System.out.println(i.getId());
                System.out.println(i.getName());
            });
        });
        System.out.println("=========");
        innTest test = new inn2Impl();
        test.run();
    }

    public static class student {
        private int id;
        private String name;

        public student(int id, String name) {
            this.id = id;
            this.name = name;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}

6.注意事项

以上遍历方式的优劣,在阿里巴巴开发手册中这样写道:

所以在开发中,可以使用entrySet方式及java8的forEach方式进行遍历。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值