【发布时间】:2017-12-21 14:20:51
【问题描述】:
有一个List<SomeObject>,其中SomeObject 在其他字段中有一个日期字段。使用Java Streams 正在寻找两个列表,一个包含日期字段为非空的 SomeObject 实例,而另一个包含具有空日期字段的剩余 SomeObject 实例。
【问题讨论】:
标签: java list java-8 java-stream
有一个List<SomeObject>,其中SomeObject 在其他字段中有一个日期字段。使用Java Streams 正在寻找两个列表,一个包含日期字段为非空的 SomeObject 实例,而另一个包含具有空日期字段的剩余 SomeObject 实例。
【问题讨论】:
标签: java list java-8 java-stream
您正在寻找Collectors.partitioningBy:
Map<Boolean,List<SomeObject>> partition =
list.stream().collect(Collectors.partitioningBy(s->s.getDate()!=null));
【讨论】:
Collectors.partitioningBy 的Predicate<SomeObject> 功能接口的test(SomeObject t) 方法的参数。你可以随意命名。