首页 > 解决方案 > 转换列表> 流式传输>

问题描述

要求:请考虑一个生成List<List<String>>和返回相同的函数。

所以在 Java 1.7 中,这可以被认为是:

public List<List<String> function(){
  List<List<String>> outList = new ArrayList<>();
  List<String> inList = new ArrayList<>();
  inList.add("ABC");
  inList.add("DEF");
  outList.add(inList);
  outList.add(inList);
  return outList;
}

现在在 Java 8 中,提供给我的函数的签名是:

public Stream<Stream<String>> function() {
      List<List<String>> outList = new ArrayList<>();
      List<String> inList = new ArrayList<>();
      inList.add("ABC");
      inList.add("DEF");
      outList.add(inList);
      outList.add(inList);
      //How to convert the outList into Stream<Stream<String>> and return.
}

如何转换List<List<String>>Stream<Stream<String>>.

标签: javajava-8java-stream

解决方案


如何转换List<List<String>>Stream<Stream<String>>

你只需要这个:

return outList.stream()
        .map(List::stream);

或者不使用列表的另一种方式,您可以使用:

public Stream<Stream<String>> function() {
    Stream<String> inList = Stream.of("ABC", "DEF");
    return Stream.of(inList, inList);
}

推荐阅读