从Java中的同一对象联接2个流

Pra*_*ant 6 java java-8 java-stream

我有一个A定义如下的类的对象列表:

class A {
    private Set<String> sOne;
    private Set<String> sTwo;
    // Constructor, getters and setters
}
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个包含两个要素流sOnestwo。在Java 8中有没有办法做到这一点?

Eug*_*ene 5

Stream.concat(sOne.stream(), sTwo.stream())
Run Code Online (Sandbox Code Playgroud)

您应该知道,在某些情况下,这会降低IIRC的某些特性。


ern*_*t_k 5

您可以使用以下方法组合它们:

List<A> aList = ...;

Stream<String> stream = aList.stream()
                             .flatMap(a -> Stream.concat(
                                      a.getsOne().stream(), 
                                      a.getsTwo().stream())
                              );
Run Code Online (Sandbox Code Playgroud)