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

用Java stream()API过滤出没有列表的单个元素

罗乐意
2023-03-14

我想知道是否有一种方法可以直接在Java中通过使用stream().filter()过滤出单个元素,而不需要创建列表和获取0索引。

String foo = stringList
            .stream().filter(item -> item.equals("foo"))
            .collect(Collectors.toList()).get(0);

共有1个答案

梁华皓
2023-03-14

是的,您可以调用findfirst():

String foo = stringList
            .stream().filter(item -> item.equals("foo"))
            .findFirst().get();

额外的好处是,它返回一个可选,它允许您处理没有元素与筛选器匹配的情况:

String foo = stringList
            .stream().filter(item -> item.equals("foo"))
            .findFirst().orElse(...);
 类似资料:
  • 我想知道是否有一种方法可以直接在Java中通过使用stream().filter()过滤出单个元素,而不需要创建列表和获取0索引。

  • 问题内容: 我想从列表中筛选元素,并使用lambda遍历每个元素的元素。例如,给定列表: 假设我只想保留列表总和大于N的元素。我尝试编写: 但我得到了错误: 在将每个元素的值分配给x,y和z时如何进行迭代?像zip之类的东西,但列表很长。 谢谢, ps我知道我可以这样写:filter(lambda x:sum(x)…,a)但这不是重点,想象一下这些不是数字而是任意元素,我想将它们的值分配给变量名。

  • 问题内容: 有没有什么好方法可以使用angular过滤列表而不使用ng- repeat?我不想首先使用javascript绘制列表,但是之后我想使用angular对其进行过滤。 例: 我想使用搜索框来过滤现有的html。 (一般请不要使用ng-repeat或jQuery给出任何示例) 问题答案: 您可以编写一个简单的指令来处理显示/隐藏: 并以这种方式使用它: 使用指令有两个好处: 1)。您不必在

  • 我的任务是为Youtrack构建一个自定义界面,并且正在使用新的Youtrack API-docs:https://www.jetbrains.com/help/Youtrack/standalone/youtrack-rest-api-reference.html。我正在查询一个完整的问题列表,返回1.17MB的数据。问题是这需要一段时间,并且我只需要特定字段的问题,即和。 有没有一种方法可以用

  • 问题 你有一个数据序列,想利用一些规则从中提取出需要的值或者是缩短序列 解决方案 最简单的过滤序列元素的方法就是使用列表推导。比如: >>> mylist = [1, 4, -5, 10, -7, 2, 3, -1] >>> [n for n in mylist if n > 0] [1, 4, 10, 2, 3] >>> [n for n in mylist if n < 0] [-5, -7,

  • 问题内容: 我开始使用django-tables2(从第一印象中就可以强烈推荐),我问自己如何实现列过滤。我找不到合适的文档,但是我确定它在那里。 问题答案: 答案有点晚了,但是无论如何…我也找不到任何合适的文档来进行列过滤。有很多方法可以做到这一点: 答:手动:我添加了一个包含要过滤的字段的表单,然后在我的视图中执行以下操作: 这很好用,但是不是那么干,因为它在视图中是硬编码的。 B.使用Sin