如何在列表中为数组写lambda

use*_*426 4 java lambda java-8 java-stream

public class A
{
    private B[] b;
    //getter setter
}

public class B
{
    private String id;
    //getter setter
}
Run Code Online (Sandbox Code Playgroud)

我已经从流中获得了一个对象,如下所示,但无法找到完成此lambda的方法来获取B类中的ID列表.

Stream <String> lines = Files.lines(Paths.get("file.json"));
lines.map(x -> (A)gson.fromJson(x, type))...
Run Code Online (Sandbox Code Playgroud)

Eug*_*ene 5

你在flatMap这里寻找:

 lines.map(x -> (A)gson.fromJson(x, type))
      .flatMap(y -> Arrays.stream(y.getB()))
      .map(B::getId)
      .collect(Collectors.toSet())  // or any other terminal operation 
Run Code Online (Sandbox Code Playgroud)