JAVA8 Stream流 日常应用整理
1.Collectors.toMap()
List<Person> list=Arrays.asList(new Person(null,"1"),new Person("2","name2"),
new Person("1","name1"),new Person(null,"name3"));
Map<String,Object> map = list.stream().collect(Collectors.toMap(
item -> item.getId(), item -> item.getName(),
(oldVal, currVal) -> currVal, LinkedHashMap::new));
————————————————————————————————————
其中toMap的参数分别是key值,value值和合并函数,以及收集的类型。这里需要注意的是key值可以是NUll,
但Value值是null会抛出空指针异常,合并函数就是一种处理机制,当key值相同的时候是选择覆盖掉后面的值,
还是用oldKey又或者是新值加旧值,是可以自定义实现的。
2.Stream-New Map()
List<Map<String, Object>> result = new ArrayList<>();
List<Course> courseList = Lists.newArrayList(course1,course2);
if(!CollectionUtils.isEmpty(courseList)){
result=courseList.stream()
.map(item -> new HashMap<String,Object>()
{
{
put("label",item.getName());
put("value",item.getId());
}
}
).collect(Collectors.toList());
}