java - 使用 removeif 过滤包含对象的列表

标签 java spring-boot java-8 spring-data spring-data-jpa

我坚持使用 removeif java 8 并寻求帮助

List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters();

我想从交易中删除那些基于检查对象属性的交易

如果 transaction.getFileHash 不为空,那么我想删除该交易。如果 transaction.getFileHash 为空,我想保留它。

所以我正在尝试 removeif

List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters().removeIf(t -> (Optional.ofNullable(t.getFileHash()).orElse(0).intValue() != 0));

但我收到错误。有人可以解释 removeif 如何处理对象属性吗?

最佳答案

您可以检索列表,然后使用 removeIf 删除元素:

List<ACHTransaction> transactions =
    transactionDao.retrieveTransactions(getJobParameters());

transactions.removeIf(t -> t.getFileHash() != null);

或者您可以按照您自己的答案进行操作并使用流:

List<ACHTransaction> transactions =
    transactionDao.retrieveTransactions(getJobParameters()).stream()
        .filter(t -> t.getFileHash() == null)
        .collect(Collectors.toList());

关于java - 使用 removeif 过滤包含对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47597274/

相关文章:

java - 创建 Activity 以打开 YouTube 并自动搜索

spring-boot - 我想将 Cassandra 时区设置为 UTC + 9 或 KST

java - 使用 Cassandra 操作 Spring Boot 使用 Cassandra 准备语句

spring-boot - 为什么我的 spring-configuration-metadata.json 属性没有生成?

java - 如何在树莓派上运行javafx

java - 为什么在 try with resources 子句中实例化时出现错误?

java - 将电子邮件从 postfix 转发到 java 应用程序

java - 恢复多对多关系元素时出现问题

java - java文件中的其他方法是否可以在Android Studio的onCreate方法中调用?

jpa - Java 8 Spring Data JPA 参数绑定(bind)