首页 > 解决方案 > 使用流根据java中的条件拆分列表

问题描述

我想要类似以下代码但使用流函数或更好的东西

List<String> a;
List<String> b = new ArrayList<>();

for (String item : a) {
    if (item.equals("something"))
        break;

    b.add(item);
}

标签: javajava-stream

解决方案


您可以使用 Java 9 takeWhile​(Predicate<? super T> predicate)

List<String> b = a.stream().takeWhile​(item -> !item.equals("something")).collect(Collectors.toList());

推荐阅读