java - java8 lambda 表达式和 foreach 问题

标签 java lambda

我有如下列表

List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("mango");
fruits.add("grapes");
System.out.println(fruits.toString());

我正在使用 lambda 表达式打印列表,如

fruits.forEach(item->System.out.println(item));

它工作正常我的要求是我需要遍历列表并将项目连接到一个字符串

String stringFruits = "";
fruits.forEach(item->stringFruits = stringFruits+item);

这给出了一个编译时错误,说 lambda 中使用的变量值应该是有效的最终值我有什么办法可以在 java 8 中做到这一点吗?

最佳答案

您需要通过分隔符加入。在这种情况下,分隔符将是 ,;但你可以选择任何你想要的。

 String result = fruits.stream().collect(Collectors.joining(","));
 System.out.println(result);

关于java - java8 lambda 表达式和 foreach 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43776997/

相关文章:

java - 使用 apache 通用编解码器库在解码器上获取无效数据

c# - 在函数内设置 Expression<Func<T>> 的值

java - 什么时候对另一个使用排序

Java 格式带空格的数字

java - 在java中卸载类?

java - out.println() 不起作用

c# - Lambda - Linq 转换

java - 使用 Java 8 lambda 将列表映射转换为不同的映射

python - 使用元组作为 lambda 的参数会引发有关缺少所需位置参数的错误

vb.net - 如何使用VB.Net Lambda表达式按多列排序