Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用lambda编辑ArrayList中的项_Java - Fatal编程技术网

Java 使用lambda编辑ArrayList中的项

Java 使用lambda编辑ArrayList中的项,java,Java,我在编辑ArrayList book=new ArrayList中的项目时遇到问题。 我知道如何在C#LINQ中实现,但我不知道如何在Java8中使用lambda表达式 C#与LINQ合作(有效): books=books.Select(b=>{if(b.title==title)b.title=newTitle;return b;}).ToList() 带有Lambda的Java(不起作用): book=book.stream().filter(b->b.author().equals(tit

我在编辑
ArrayList book=new ArrayList
中的项目时遇到问题。 我知道如何在C#LINQ中实现,但我不知道如何在Java8中使用lambda表达式

C#与LINQ合作(有效):
books=books.Select(b=>{if(b.title==title)b.title=newTitle;return b;}).ToList()

带有Lambda的Java(不起作用):
book=book.stream().filter(b->b.author().equals(title)=newTitle)


你能帮我吗?

book.stream().filter(b->b.author().equals(title)).forEach(b->b.setTitle(newTitle))
。但是,请注意,这具有糟糕的性能特征,如果您在一个包含多个项目(>100)的
列表中多次执行此操作,请使用
映射
!真的谢谢!我只想对几个元素进行几次编辑。碰巧,您的LINQ示例似乎在
Select
方法中对一个对象进行了变异—这是一个例子。LINQ和Java8
Stream
都希望有一些lambda,而您所做的可能会导致潜在的、难以诊断的bug。在使用函数编程API之前,请先了解函数编程概念
book.stream().filter(b->b.author().equals(title)).forEach(b->b.setTitle(newTitle))
。但是,请注意,这具有糟糕的性能特征,如果您在一个包含多个项目(>100)的
列表中多次执行此操作,请使用
映射
!真的谢谢!我只想对几个元素进行几次编辑。碰巧,您的LINQ示例似乎在
Select
方法中对一个对象进行了变异—这是一个例子。LINQ和Java8
Stream
都希望有一些lambda,而您所做的可能会导致潜在的、难以诊断的bug。在使用函数编程API之前,请先了解函数编程概念!