java8使用stream Api实现List 转Map

x33g5p2x  于2021-12-18 转载在 其他  
字(0.9k)|赞(0)|评价(0)|浏览(331)

推荐内容:

  1. 《java8新特性—大总结》这篇文章介绍的是整个java8的新特性的主要特性
    不管看了多少篇文章,最终的目的都是为了掌握和应用java8的新特性,帮助我们写代码更加的简洁高效。
  2. 《java8 Stream接口的深入解读》 专门解读Stream接口的接口
  3. 《使用java8的Stream统计字符串数组中每一个字符出现的次数》 java8的一个小案例,使用Stream统计字符串数组每一个字符的个数
  4. 更多关于java8的内容可以关注我的专栏《java8新特性》

List 转 Map

示例代码如下

原理剖析:我们知道List类型的数据要转换为Map,就要知道key由什么构成,value由什么构成

Collectors.toMap的两个参数分别是key和value的function类型函数,

import lombok.Builder;
import lombok.Data;

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

@Data
@Builder
class User {
    String name;
    String sex;
    int age;
}

public class Demo {

    public static void main(String[] args) {

        // 准备测试数据
        final ArrayList<User> users = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            users.add(User.builder().name(String.valueOf(i)).sex("男").age(11).build());
        }
        // 得到转换后的Map
        Map<String, Object> map = users.stream()
                .collect(Collectors.toMap(k -> k.name + k.sex, v -> v.age));

        // 遍历map
        map.forEach((k, v) -> {
            System.out.println(k + " " + v);
        });

    }
}

相关文章