我希望扫描一个文件列表,并在每个步骤中只获取验证子集和 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);
答案 0 :(得分:0)
也许Stream API和Collectors.partitioningBy可以帮助您。这样你就可以按照自己的意愿获得带有分区的地图。
Perl.exe
在上面的示例中,您将获得sampleFiles.stream()
.collect(Collectors.partitioningBy(/* your partition function */);
。但其他分区也是可能的。也许Map<Boolean, List<File>>
也可以。
如果您不喜欢溪流,以下内容也可能有效......
IntStream.range
除了这些变种之外,我认为没有更简单的方法来获取列表的其余部分。