Java 8 流式传输一个Collection,只将过滤值的特定字段添加到一个String列表中
Java 8 stream a Collection and add only a specific field of the filtered values to a List of String
我有一组帐户对象。我想根据价格是否大于 100 流式传输此集合并进行过滤。然后仅将这些帐户 ID 添加到列表
这就是我使用的 forEach
List<String> filteredAcctList = new ArrayList<String>()
forEach(Account acct:accountList){
if(acct.getPrice() >100){
filteredAcctList.add(acct.getAccountId())
}
}
我正在尝试使用 Java 8 流来完成相同的操作,但不确定如何创建仅包含帐户 ID 的 ArrayList。
您需要使用 map
才能将您的 Account
项目“映射”到 String
。
List<String> filteredAccList =
accountList
.stream()
.filter(a -> a.getPrice() > 100)
.map(Account::getAccountId)
.collect(Collectors.toList());
我有一组帐户对象。我想根据价格是否大于 100 流式传输此集合并进行过滤。然后仅将这些帐户 ID 添加到列表
这就是我使用的 forEach
List<String> filteredAcctList = new ArrayList<String>()
forEach(Account acct:accountList){
if(acct.getPrice() >100){
filteredAcctList.add(acct.getAccountId())
}
}
我正在尝试使用 Java 8 流来完成相同的操作,但不确定如何创建仅包含帐户 ID 的 ArrayList。
您需要使用 map
才能将您的 Account
项目“映射”到 String
。
List<String> filteredAccList =
accountList
.stream()
.filter(a -> a.getPrice() > 100)
.map(Account::getAccountId)
.collect(Collectors.toList());