gpt4 book ai didi

java - 如何获取给定索引范围内*不*的元素的子 ListView

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:19 24 4
gpt4 key购买 nike

我想扫描文件列表,并在每个步骤中仅获取一个验证子集和一个训练子集。

在Java中,我可以使用List#sublist(int from, int to)来获取子列表,但是有没有一种很好且简单的方法来获取除该范围内的元素之外的所有元素?例如

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

最佳答案

也许是 Stream APICollectors.partitioningBy可以帮助你。这样您就可以得到一张包含您希望的分区的 map 。

sampleFiles.stream()
.collect(Collectors.partitioningBy(/* your partition function */);

在上面的示例中,您将获得 Map<Boolean, List<File>> 。但其他分区也是可能的。也许IntStream.range也可以。

如果您不喜欢流,以下方法也可能有效...

List<String> sampleFiles = ...
List<String> valid = sampleFiles.subList(fromIndex, toIndex);
List<String> train = new ArrayList(sampleFiles);
train.removeAll(valid);

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

关于java - 如何获取给定索引范围内*不*的元素的子 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41805736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com