java8 lambda表达式和foreach的问题

rob*_*bin 3 java lambda

我有一个如下所示的列表

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

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

fruits.forEach(item->System.out.println(item));
Run Code Online (Sandbox Code Playgroud)

并且它的工作正常我的要求是我需要迭代列表并将项连接到字符串

String stringFruits = "";
fruits.forEach(item->stringFruits = stringFruits+item);
Run Code Online (Sandbox Code Playgroud)

这是一个编译时错误,说lambda中使用的变量值应该是有效的最终是否有任何方式我可以在java 8中做到这一点?

Eug*_*ene 7

你需要join通过一个delimiter.在这种情况下,分隔符将是,; 但你可以选择任何你想要的.

 String result = fruits.stream().collect(Collectors.joining(","));
 System.out.println(result);
Run Code Online (Sandbox Code Playgroud)