当前位置: 首页 > 面试题库 >

特定索引的Java流过滤器项

龚同
2023-03-14
问题内容

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

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>for索引,因为它们是唯一的定义,以便contains进行恒定时间操作)。

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


 类似资料:
  • 19 比特流滤镜 默认编译时所有的比特流滤镜都被支持,你可以在配置脚本中以--list-bsfs获取有效的滤镜列表 可以利用--disable-bsfs禁用所有的比特流滤镜。要指定个别的滤镜可用,则在此基础上--enable-bsf=BSF,或者在默认(没有指定--disable-bsfs)下禁用个别的滤镜--disable-bsf=BSF,这里BSF是个别滤镜名称。 在ff*工具集中,-bsfs

  • 我每年使用许多场景来预测产品的需求。我有一个多索引的数据帧(模拟、年、月),需要按其中一个进行过滤(比如模拟)。 如何按模拟进行筛选? 仅按模拟编号1进行过滤的预期输出

  • 过滤器作为读写操作的流内容传输过程中的附加阶段. 要注意的是直到php 4.3中才加入了流过滤器, 在php 5.0对流过滤器的API设计做过较大的调整. 本章的内容遵循的是php 5的流过滤器规范. 在流上应用已有的过滤器 在一个打开的流上应用一个已有的过滤器只需要几行代码即可: php_stream *php_sample6_fopen_read_ucase(const char *path

  • 我有一个名为的类,用它描述活动及其开始时间和结束时间。这些属性是、、。我必须使用流对这些活动进行分组和过滤,这些活动的总持续时间超过10小时。我成功地计算了持续时间的总和,并根据活动将它们分组:

  • 问题内容: 我应该使用哪个过滤器来定义要使用apender记录的特定级别?例如: Java的 log4j2.xml: 文件输出很好,但是在控制台中,我得到了这样的结果: 但是我需要追加程序仅输出INFO消息,而输出所有EXEPT INFO。因此,控制台输出应如下所示: 无法找到如何防止过滤器尊重级别继承的方法。是否有可能做到这一点? 问题答案: 这有效:

  • 问题内容: 我有一系列元素。我还有一个IndexSet,它指定需要将数组的哪些索引提取到新数组中。例如: 我正在寻找使用swift 函数的方法,但是还没有答案。我怎样才能做到这一点? 问题答案: 是递增整数的集合,因此可以 将 每个索引 映射 到相应的数组元素: 假定所有索引对于给定数组均有效。如果不能保证,则可以过滤索引(如@dfri正确标记):