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

java流查找匹配还是最后一个?

谢华彩
2023-03-14
OptionalInt i = IntStream.rangeClosed(1,5)
                         .filter(x-> x == 7)
                         .findFirst();
System.out.print(i.getAsInt());

共有1个答案

吕鸿文
2023-03-14

给定名单

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);

你可以这样做:

int value = list.stream().filter(x -> x == 2)
                         .findFirst()
                         .orElse(list.get(list.size() - 1));

在这里,如果筛选器的计算结果为true,则检索元素,否则返回last中的最后一个元素。

int value = list.stream().filter(x -> x == 2)
                         .findFirst()
                         .orElse(list.isEmpty() ? -1 : list.get(list.size() - 1));
 类似资料:
  • 在Transform函数中编写NodeJS Transform stream时,我如何知道该块是最后一块还是没有任何新块出现。 所以我需要知道何时进入Stream的块结束,对由所有块组成的缓冲区进行一些处理,然后从流中推送处理过的数据。

  • 问题内容: 我想匹配字符串中最后一次出现的简单模式,例如 但是,如果字符串 很 长,则会生成大量匹配项。有没有更直接的方法来匹配第二次出现的“ AAAA”,还是应该使用此替代方法? 问题答案: 您可以使用表示行末字符: 另外,请注意,这是变量的坏名称,因为它隐藏了内置类型。要访问列表的最后一个元素,您可以使用index:

  • 问题内容: 我有一个关于学校作业的问题,我需要用Java来完成。我需要从文件加载数据并检查这些文件中的错误。 我读取带有的文件,该文件在文件末尾之前都可以正常运行:如果该行为空,它将忽略最后一行。 我知道如何检查空行,但是使用的功能,最后一行根本不会给出任何结果。 重要的是,我知道最后一行是否必须为空。如果空行不存在,则应该给出错误。 长话短说,我需要一种方法来说明以下情况(行尾在哪里)之间的区别

  • 我有一个大约一百万个元素的有序,我正在寻找与特定条件匹配的最后一个元素,但是条件计算起来很重,所以如果我从头开始会更好。总是有大致 匹配元素,最小值为 1。 我可以手动操作: 有没有办法用< code>Streams来写这个,这样< code > heavyConditionPredicate 就不用对列表的每个元素进行测试了?如果heavyConditionPredicate计算起来不那么重,我

  • 问题内容: 我有绳子。我想找到最后一个/来分割字符串。最初的尝试是:但这很明显。有人给小费吗? 问题答案: 您是否需要为此使用正则表达式?将字符串。lastIndexOf(“ /”) 工作来查找索引,然后将String.substring(int start,int end) 与结果一起使用?还是您的实际数据不同且更加复杂,需要使用正则表达式?使用您提供的在最后一个/处分割字符串的代码,这里是代码

  • 我的目标是筛选出最佳匹配。在我的例子中,我有一个人员列表,我想按姓氏和名字过滤。 匹配的预趋势将是: < li >姓和名都匹配,返回第一个匹配项 < li >仅姓氏匹配,返回第一个匹配项 < li >不匹配,抛出一些异常 我目前为止的代码: