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

你能把一条小溪分成两条小溪吗?

柯宜年
2023-03-14

我有一个由Java8流表示的数据集:

Stream<T> stream = ...;
Random r = new Random();
PrimitiveIterator.OfInt coin = r.ints(0, 2).iterator();   
Stream<T> heads = stream.filter((x) -> (coin.nextInt() == 0));
(heads, tails) = stream.[some kind of split based on filter]

谢谢你的洞察力。

共有1个答案

虞祯
2023-03-14

不完全是。不能从一个中得到两个stream;这是没有意义的--您如何迭代一个而不需要同时生成另一个?一个流只能操作一次。

但是,如果您想将它们转储到列表或其他内容中,您可以

stream.forEach((x) -> ((x == 0) ? heads : tails).add(x));
 类似资料:
  • 我有一个通用的Streams API问题,我想“高效地”解决。假设我有一个(可能非常大,可能无限)流。我想以某种方式对其进行预处理,例如,过滤掉一些项目,并对一些项目进行变异。让我们假设这个预处理是复杂的,时间和计算密集型的,所以我不想做两次。 接下来,我想对项序列执行两组不同的操作,并使用不同的流类型构造处理每个不同序列的远端。对于无限流,这将是一个forEach,对于有限流,它可能是一个收集器

  • 我想知道我是否能做这样的事情。假设我有一个数字流1-20。我想利用一个特性,比如drop 3(我想用Java术语来说是限制还是跳过?)并产生一个流,即数字流: 1-20、4-20、7-20等 然后可能平坦地将这些全部映射到一条溪流中。我尝试了使用Stream.iterate的各种组合,主要是从流生成流,但我一直收到一个IllegalStateExcema,说流已经操作或关闭。 例如,人们可能期望这

  • 我写了一个kafka流代码,使用kafka 2.4 kafka客户端版本和kafka 2.2服务器版本。我的主题有50个分区 我的Kafka流代码有选择键()DSL操作,我有200万条记录使用相同的KEY。在流配置中,我已经完成了 因此,我能够使用完全相同的键使用不同的分区。如果我没有按预期使用轮循机制,我的所有消息都会转到同一分区。 直到现在一切都很好,但我意识到;当我使用RoundRobin分

  • 我是新的Kafka流,我正在使用它使一个主题的确切拷贝到另一个不同的名称。本主题有几个分区,我的制作者正在使用自定义分区。输出主题是用输入主题相同数量的分区预先创建的。 在我的应用程序中,我做了(我正在使用Kotlin): 除了分区(当然,我使用的是自定义分区器)之外,这是可行的。有没有一种简单的方法可以使用输入记录的相同分区将输入记录复制到输出主题? 显然,我可以在接收器中使用自定义分区器,但这

  • 我对流媒体有一个普遍的问题,但对于问题的范围,让我们限制自己使用Kafka Streams。让我们进一步缩小范围,将我们的问题局限于单词计数,或者可能是一般的计数。假设我有一个由某个键和一个值组成的流,键可以是一个字符串(假设我们可以有很多字符串,除了空字符串,由世界上的任何字符组成),值是一个整数,现在我们正在构建一个单词计数应用程序,如果词汇表中的单词总数是一万亿,我们不能将它们存储在本地缓存

  • 在Spring Boot应用程序中,我试图配置Kafka流。用简单的Kafka主题,一切都很好,但我无法得到工作SpringKafka流。 这是我的配置: 我想创建一个基于主题的流。应用一个简单的转换并将此流中的消息发送到test主题。 我向发送以下消息,其中是我自己的复杂类型,但是我现在不知道如何将它转换为中的,以便能够在中使用它。 请建议如何使其工作。