Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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
Java8-收集时的流值更新_Java_Java 8_Java Stream - Fatal编程技术网

Java8-收集时的流值更新

Java8-收集时的流值更新,java,java-8,java-stream,Java,Java 8,Java Stream,在前面的问题中,我们如何在collect()流程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( na

在前面的问题中,我们如何在
collect()
流程
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));
输出:

[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()


只需在调用之前将前缀添加到
createReport

names.stream()
     .map(name -> preFix + "->" + MyClass.createReport(name, designation))
     .collect(ArrayList::new, ArrayList::add, ArrayList::addAll);
另一方面,
.collect(ArrayList::new,ArrayList::add,ArrayList::addAll)
可以简化为
.collect(toCollection(ArrayList::new))


…map(name->preFix+“->”+MyClass.createReport(name,designation))…
您在软件中提出的问题。你已经给出了答案。。。这是什么。
System.out.println(
      names.stream()
           .map(name -> FolderDiffGenerator.createReport(name, 
                        designation))**
           .map(result -> preFix + "->" +result)**
           .collect(ArrayList::new, ArrayList::add, ArrayList::addAll));
names.stream()
     .map(name -> preFix + "->" + MyClass.createReport(name, designation))
     .collect(ArrayList::new, ArrayList::add, ArrayList::addAll);
names.stream()
     .map(name -> preFix + "->" + MyClass.createReport(name, designation))
     .collect(toCollection(ArrayList::new));