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

在Java8+流中是否有一个等价物可以打破?[副本]

陈知
2023-03-14

我正在尝试根据一个条件筛选一个列表。有没有一个替代的方法来中断Java8流,我可以用它来停止过滤?

举个例子:假设我有下面的列表。

List<String> list = Arrays.asList("Foo","Food" ,"Fine","Far","Bar","Ford","Flower","Fire");

list.stream()
        .filter(str -> str.startsWith("F")) //break when str doesn't start with F
        .collect(Collectors.toList());
List<String> result = new ArrayList<>();
for(String s : list){
    if(s.startsWith("F")){
        result.add(s);
    }
    else{
        break;
    }
}

如何在流中使用“break”?

共有1个答案

邵阳
2023-03-14

您可以在Java9中使用TakeWhile运算符,它可以完成您所需要的操作。下面是它的样子。

List<String> res = list.stream()
    .takeWhile(s -> s.startsWith("F"))
    .collect(Collectors.toList());
 类似资料:
  • 就像Java 8中的(在某种程度上)与Scala的类型等价一样,是否存在与Scala的等价的类型?

  • Java7引入了MethodHandle类,用于动态执行给定类的方法。据我所知,在JDK的Android端口上没有这样的东西。除了使用标准的反射类之外,是否有任何解决方法可以用来绕过这个问题?

  • 我想按节组织我的代码。通常我使用,但当我试图在.swift文件中这样做时,它就不起作用了。 所以我的问题是,我是否能够以某种方式启用它,如果不能,那么如何在.swift文件中组织代码?

  • 像C/C、C#、Java、JavaScript和Pascal(参考)这样的编程语言结合了和语句(有时也称为或),允许您根据多个条件检查一个值以执行某些操作。 伪代码,用于描述-构造的特殊语法 了解字典查找等功能等价物后,是否存在与上述编程构造完全相同的语法等价物?

  • 问题内容: 注意:此问题仅供参考。我很想知道这样做有多深入到Python内部。 不久前,在某个问题的内部开始了一个讨论,该问题涉及传递给print语句的字符串是否可以在调用to之后/期间进行修改。例如,考虑以下功能: 现在,当运行时,到终端的输出应显示: 请注意,单词“ cat”已被单词“ dog”代替。某处某种方式能够修改这些内部缓冲区以更改打印的内容。假设这是在没有原始代码作者明确许可的情况下

  • 不建议将引导程序直接用于React,因为引导程序的JavaScript可能会直接改变DOM,从而干扰React的虚拟DOM系统。关于角度(2)也可以这样说吗?