如果使用我的服务使用Java 8 lambda / streams列表不为空,如何从列表中删除每个元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果使用我的服务使用Java 8 lambda / streams列表不为空,如何从列表中删除每个元素相关的知识,希望对你有一定的参考价值。

您好我想使用java 8更新此遗留代码。

if(CollectionUtils.isNotEmpty(listOfObjects){
 for(Object o : listOfObjects){
     objectService.delete(o);
  }
 }

我是java 8和lambda表达式的新手,我想使用它并尽可能地重塑我的代码。不是因为它总是很重要,而是因为我想要习惯它能够更容易地学习它。

答案

虽然你的问题是要求从列表中删除元素,如果它不是空的,你可以简单地使用list.clear()来清除它。关于遗留代码重构以使用Java8功能;

if(CollectionUtils.isNotEmpty(listOfObjects)) {
  for(Object o : listOfObjects){
    objectService.delete(o);
  }
}

可以转换为使用如下method references

listOfObjects.forEach(objectService::delete)

如果你有一个只接受method references参数的方法,这是一个使用Object的更好的地方。

以上是关于如果使用我的服务使用Java 8 lambda / streams列表不为空,如何从列表中删除每个元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在java 8中将字符串排序为带有lambdas的int

Java 8:带有 where 条件的 Lambda 表达式

java 使用Java 8 lambdas编写干净的日志代码

使用 Java 8 Lambda 创建 ArrayList

java图中代码改用Lambda表达式实现Comparator接口?

如何使用 Java 8/lambda 执行嵌套的“if”语句?