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);
});

}
}