如何在给定的索引范围内获取元素的子列表视图*而不是*

时间:2017-01-23 11:50:15

标签: java

我希望扫描一个文件列表,并在每个步骤中只获取验证子集和 training 子集。

在Java中,我可以使用List#sublist(int from, int to)来获取子列表,但有一种简单明了的方法可以获得除了那些范围内的所有元素吗? E.g。

List<File> valid = this.sampleFiles.subList(fromIndex, toIndex);
List<File> train = this.sampleFiles.notInSubList(fromIndex, toIndex);

1 个答案:

答案 0 :(得分:0)

也许Stream APICollectors.partitioningBy可以帮助您。这样你就可以按照自己的意愿获得带有分区的地图。

Perl.exe

在上面的示例中,您将获得sampleFiles.stream() .collect(Collectors.partitioningBy(/* your partition function */); 。但其他分区也是可能的。也许Map<Boolean, List<File>>也可以。

如果您不喜欢溪流,以下内容也可能有效......

IntStream.range

除了这些变种之外,我认为没有更简单的方法来获取列表的其余部分。