java - 使用流根据java中的条件拆分列表
问题描述
我想要类似以下代码但使用流函数或更好的东西
List<String> a;
List<String> b = new ArrayList<>();
for (String item : a) {
if (item.equals("something"))
break;
b.add(item);
}
解决方案
您可以使用 Java 9 takeWhile(Predicate<? super T> predicate)
:
List<String> b = a.stream().takeWhile(item -> !item.equals("something")).collect(Collectors.toList());
推荐阅读
- asp.net-core - 为了响应在没有足够权限的情况下删除资源的请求,在休息 API 中引发的正确异常是什么?
- data-structures - 为什么我需要堆栈和队列?
- azure - 部署 Azure Web 作业
- react-native - “react-native init”模板应用程序的问题:无法从 react-native/scripts 解析模块`./index`
- html - 从jsp调用html文件
- c# - 如何从 ContentView 上下文中使用的 ListView 绑定“轻拍”事件处理程序?
- javascript - 如果有使用 fullCalendar 的事件,则突出显示日期
- amazon-web-services - 在 beanstalk t2.micro ec2 上找不到 Django 2.1.1
- c# - 在多租户应用场景中,同一模型是否可以具有不同的属性?
- sql - 按各种属性比较两个大表 - PostgreSQL