当前位置: 首页 > 知识库问答 >
问题:

合并两个流以创建一个新的[重复]

贾沛
2023-03-14

我想同时执行两个流,并生成作为前两个流的组合的第三个流

Stream<String> a = Stream.of("f","b","z");
Stream<String> b = Stream.of("foo","bar","baz");

我想从这两个中生成一个新的,它将与这一个等价

Stream<String> c = Stream.of("f:foo","b:bar","z:baz");

我目前找到的是stream.concatstream.of

 Stream<String> result = Stream.concat(a, b); or
 Stream<String> result = Stream.of(a, b).flatMap(s -> s);
Stream.of("f","b","z","foo","bar","baz");
List<String> aList = a.collect(Collectors.toList());
List<String> bList = b.collect(Collectors.toList());
List<String> result = new ArrayList<>();
for(int i = 0; i< aList.size(); i++){
    result.add(aList.get(i)+":"+bList.get(i));
}
Stream<String> cc = result.stream();

共有1个答案

尉迟浩思
2023-03-14

这个操作通常称为zip,它并不作为streamAPI中的函数存在。自己实现它有点困难,您可以从以下答案中看到:https://stackoverflow.com/a/23529010/4137489

该函数在Google Guava库中实现,但:

https://guava.dev/releases/23.0/api/docs/com/google/common/collect/streams.html#zip-java.util.stream.stream-java.util.stream.stream-java.util.function.bifunction-

Streams.zip(a, b, (aElem, bElem) -> aElem + ":" + bElem));
 类似资料:
  • 有没有办法把下面的2个状态结合起来呢? 我有一个类如下所示: 包含一个介于之间的随机值。 是一个包含大量

  • 我想创建,它是和元素的和,换句话说,。 我该如何使用流操作来执行此操作呢?

  • 本文向大家介绍dart 创建一个新的集合,包括了dart 创建一个新的集合的使用技巧和注意事项,需要的朋友参考一下 示例 可以通过构造函数创建集合:            

  • 我有一个包含18个数据帧的列表: 所有数据帧都有一个公共id列,因此很容易将它们与pd连接在一起。一次合并2个。有没有一种方法可以一次将它们连接起来,从而使dfList作为单个数据帧返回?

  • 我试图通过合并另外两个列表来生成ArrayList。我允许重复对象,但是我的结果ArrayList必须包含两个初始列表之间的差异。我意识到这听起来可能很复杂,所以这里有一个例子: ArrayList 1:[obj1,obj1,obj1,obj2,obj4,obj4] ArrayList 2:[obj1,obj2,obj2,obj3] 我觉得这应该很简单,但我似乎想不通。我将使用ArrayList1

  • configure脚本创建一个名为'config.status'的文件,用它描述在包最后一次进行配置时 给出的配置选项。该文件是一个shell脚本文件,如果运行它,将重新创建相同的配置。 你可以用'--recheck'选项调用'config.status'以更新它自身。如果你修改了configure, 该选项是有用的,这是因为某些测试的结果可能会与上一次运行的结果不同。选项'--recheck'以