【发布时间】:2018-11-30 06:03:36
【问题描述】:
扩展上一个问题Java 8 - Calling a multi argument method from Collection.stream.map(),我们如何在stream().map() 进程之后在collect() 中收集时更新值?
String designation = "Engineer";
String preFix = "PRE_FIX";
List<String> names = new ArrayList<>();
names.add("ABC");
names.add("DEF");
names.add("GHI");
System.out.println(
names.stream()
.map(name ->
MyClass.createReport(name, designation))
.collect(ArrayList::new, ArrayList::add, ArrayList::addAll));
public static String createReport(String name, String designation) {
return ("Name:" + name + " - Designation:" + designation);
}
输出:
[Name:ABC - Designation:Engineer, Name:DEF - Designation:Engineer,
Name:GHI - Designation:Engineer]
预期:
[PRE_FIX->Name:ABC - Designation:Engineer, PRE_FIX->Name:DEF -
Designation:Engineer, PRE_FIX->Name:GHI - Designation:Engineer]
【问题讨论】:
-
....map(name -> preFix + "->" + MyClass.createReport(name, designation)).. -
您在 SOF 中提出的问题。你已经给出了答案......这是什么prasad。
标签: java java-8 java-stream