JAVA stream 转换为其他各种数据类型

77 阅读1分钟

开发过程中我们经常使用Stream, 那么怎么将其结果转为其他的数据类型呢?

1. 转为 List

List<Integer> ageList = userList.stream().collect(Collectors.toList());
log.info("ageList: {}", ageList);
// ageList: [20, 15, 30, 30, 18]

2. 转为 Array

List<String> strings1 = Arrays.asList("Java", "Python", "PHP");
String[] strings3 = strings1.stream().toArray(String[]::new);

3. 转为 Map

Map<Integer, User> userIdToUserMap = userList.stream().collect(Collectors.toMap(User::getId, u -> u));
log.info("userIdToUserMap {}", userIdToUserMap);

4. 转为 Set

使用 set 实现数组去重

Set<String> collect = Stream.of("Java", "Python", "PHP", "C", "C++", "Java").collect(Collectors.toSet());
System.out.println(collect);
//[Java, C++, C, PHP, Python]