如何将以下代码转换为 Java 8
How can I convert following code to Java 8
我以命令式风格编写了以下代码,运行良好。但我想将它转换为 java 8,我已经尝试过但无法以最优雅的方式获得。
List<Wrapper> futureList = new ArrayList<>();
List<Wrapper> pastList = new ArrayList<>();
List<Wrapper> list = fooRepository.findAll();
for(Wrapper data : list){
if(data.getSchedule().toInstant().isAfter(new Date().toInstant())
futureList.add(data);
else
pastList.add(data);
}
好吧,如果您想使用 Stream
s,最简单的方法就是像这样使用 Collectors.partitioningBy
:
Map<Boolean, List<Wrapper>> map = list.stream()
.collect(Collectors.partitioningBy(data -> data.getSchedule().toInstant().isAfter(Instant.now())));
List<Wrapper> pastList = map.get(false);
List<Wrapper> futureList = map.get(true);
我以命令式风格编写了以下代码,运行良好。但我想将它转换为 java 8,我已经尝试过但无法以最优雅的方式获得。
List<Wrapper> futureList = new ArrayList<>();
List<Wrapper> pastList = new ArrayList<>();
List<Wrapper> list = fooRepository.findAll();
for(Wrapper data : list){
if(data.getSchedule().toInstant().isAfter(new Date().toInstant())
futureList.add(data);
else
pastList.add(data);
}
好吧,如果您想使用 Stream
s,最简单的方法就是像这样使用 Collectors.partitioningBy
:
Map<Boolean, List<Wrapper>> map = list.stream()
.collect(Collectors.partitioningBy(data -> data.getSchedule().toInstant().isAfter(Instant.now())));
List<Wrapper> pastList = map.get(false);
List<Wrapper> futureList = map.get(true);