gpt4 book ai didi

特定索引的Java流过滤项目

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:59 26 4
gpt4 key购买 nike

我正在寻找一种简洁的方法来过滤掉列表中特定索引处的项目。我的示例输入如下所示:

List<Double> originalList = Arrays.asList(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0);
List<Integer> filterIndexes = Arrays.asList(2, 4, 6, 8);

我想过滤掉索引 2468 处的项目。我有一个 for 循环可以跳过与索引匹配的项目,但我希望有一种使用流来完成它的简单方法。最终结果如下所示:

List<Double> filteredList = Arrays.asList(0.0, 1.0, 3.0, 5.0, 7.0, 9.0, 10.0);

最佳答案

您可以生成 IntStream模仿原始列表的索引,然后删除 filteredIndexes 中的索引列表,然后将这些索引映射到列表中的相应元素(更好的方法是使用 HashSet<Integer> 作为索引,因为根据定义它们是唯一的,因此 contains 是一个常量时间操作)。

List<Double> filteredList = 
IntStream.range(0, originalList.size())
.filter(i -> !filterIndexes.contains(i))
.mapToObj(originalList::get)
.collect(Collectors.toList());

关于特定索引的Java流过滤项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294051/

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