当前位置: 首页 > 知识库问答 >
问题:

是否可以使用Java8流过滤器访问列表的索引?[副本]

孟健
2023-03-14

是否可以使用流筛选器访问列表的索引?我是说...我知道用循环(while,for,等等)可以做到这一点但就好像列表在成为流时丢失了有关索引的信息一样。

我想是这样的:

list.stream().filter(x -> x > 100)
    .fiter(--getIndexOfEachValue--)
    .collect(Collectors.toList())

我期望结果=[1,3,4]

共有1个答案

东方新霁
2023-03-14

不,这是不可能的。stream()调用生成一个值流。由于列表中的值不是唯一的,因此不可能将它们映射到原始列表中的唯一位置。

您可以将示例编码为:

list.stream().filter(x -> x > 100)
    .map(x -> list.indexOf(x))
    .collect(Collectors.toList())

但请记住:

    null
IntStream.range(0, list.size())
     .filter(i -> list.get(i) > 100)
     .boxed()
     .collect(Collectors.toList());

注意,我们流式处理的是列表的索引,而不是列表元素。如果列表元素是非唯一的,它将起作用。

 类似资料:
  • 问题内容: 在Python中,我有一个元素列表和一个索引列表。我有什么办法可以立即检索其中的值作为索引的所有那些项? 例: 问题答案: 我不知道有什么方法可以做。但是您可以使用列表理解:

  • 16.3. 过滤已访问列表 你已经熟识了 应用列表遍历来过滤列表。 这里介绍的是达到相同效果的另一种令很多人感觉清晰的实现方法。 Python 有一个内建 filter 函数,它接受两个参数:一个函数和一个列表,返回一个列表。[7] 作为第一个参数传递给 filter 的函数本身应接受一个参数,filter 返回的列表将会包含被传入列表参数传递给 filter 所有可以另函数返回真(true)的元

  • 可能的重复: Java是参照传递吗? 对象是否通过引用传递?换句话说,如果我将对象传递给类,当我更改它时,它是否会自动更新?

  • 问题内容: 我正在寻找一种简洁的方法来过滤特定索引处的列表中的项目。我的示例输入如下所示: 我想在指标筛选出的项目,,,。我有一个for循环,它跳过与索引匹配的项目,但我希望可以有一种使用流的简单方法。最终结果将如下所示: 问题答案: 您可以生成一个模拟原始列表的索引,然后删除列表中的索引,然后将这些索引映射到列表中的相应元素(一种更好的方法是使用for索引,因为它们是唯一的定义,以便进行恒定时间

  • 如何使用java8流和过滤器过滤嵌套循环? 假设我有一个汽车列表(

  • 我正在尝试使用Postman,chrome扩展api客户端Postman通过http访问Dynamodb。这实际上是我在《Dynamodb应用设计模式》一书中读到的一种方法。似乎我做错了什么,因为我无法成功地验证和访问web服务。 我在Postman客户端中使用的url和标题以及我最近的请求参数和错误消息如下: 我的请求是: 我得到以下错误消息: {uuu type:“com.amazon.cor