Java 根据标准将列表分为两个列表的最佳方法是什么

Java 根据标准将列表分为两个列表的最佳方法是什么,java,java-8,Java,Java 8,我有一个对象列表,我想根据字段的值将该列表分为两个列表。下面是我如何使用Stream.filter(): public void setMovieMedia(List<MovieMediaResponse> movieMedias) { // fill the first list this.setPhotos(movieMedias .stream() .filter(movieMedia -> movieMe

我有一个对象列表,我想根据字段的值将该列表分为两个列表。下面是我如何使用
Stream.filter()

public void setMovieMedia(List<MovieMediaResponse> movieMedias) {

    // fill the first list
    this.setPhotos(movieMedias
            .stream()
            .filter(movieMedia -> movieMedia.getType().equals(MediaType.PHOTO))
            .collect(Collectors.toList()));
    // fill the second list
    this.setVideos(movieMedias
            .stream()
            .filter(movieMedia -> movieMedia.getType().equals(MediaType.VIDEO))
            .collect(Collectors.toList()));
}

您正在寻找的是
收集器。通过分区
可以获得
映射
,其中键是
布尔值
;因此,您可以:

result.get(true/false) 
获取每个单独的列表。因为你们似乎知道自己在溪流中的路线,所以我不举一个例子,你们很可能会明白

result.get(true/false)