如何使用Java 8 Stream过滤集合并提取指定字段生成String列表
实现代码
你可以直接使用如下Java 8 Stream写法实现相同逻辑:
import java.util.stream.Collectors; import java.util.ArrayList; import java.util.List; // 具体业务逻辑 List<String> filteredAcctList = accountList.stream() .filter(acct -> acct.getPrice() > 100) .map(Account::getAccountId) .collect(Collectors.toCollection(ArrayList::new));
补充说明
filter方法负责筛选出price大于100的Account对象map方法负责将Account对象转换为其accountId字段值,完成流元素的类型转换- 如果你不需要严格要求返回的List实现为
ArrayList,也可以替换collect部分的代码为.collect(Collectors.toList()),该写法更简洁,但JDK不保证返回的List具体实现类,部分版本返回的List不支持添加、删除等修改操作 - 运行代码前需要确保已经导入
java.util.stream.Collectors相关依赖类
内容的提问来源于stack exchange,提问作者Mary
相关产品推荐
相关产品推荐

