Java 8 lambda api
发布时间:2020-12-14 05:14:50 所属栏目:Java 来源:网络整理
导读:我正在努力从Rx Java迁移到 Java 8 lambdas.我找不到的一个例子是缓冲请求的方法.例如,在Rx Java中,我可以说如下. Observable.create(getIterator()).buffer(20,1000,TimeUnit. MILLISECONDS).doOnNext(list - doWrite(list)); 我们将20个元素缓冲到一个列表
我正在努力从Rx
Java迁移到
Java 8 lambdas.我找不到的一个例子是缓冲请求的方法.例如,在Rx Java中,我可以说如下.
Observable.create(getIterator()).buffer(20,1000,TimeUnit. MILLISECONDS).doOnNext(list -> doWrite(list)); 我们将20个元素缓冲到一个列表中,或者以1000毫秒的时间超时,这首先发生. RX中的可观测值是可观察的“推”样式,其中Streams使用java拉.这是否可能在流中实现我自己的地图操作,或者由于doOnNext必须轮询上一个元素,否则无法发出导致问题的原因? 解决方法
一种方法是使用BlockingQueue和Guava.使用Queues.drain,您可以创建一个集合,然后调用stream()并进行转换.这里有一个链接:
Guava Queues.drain
这里有一个简单的例子: public void transform(BlockingQueue<Something> input) { List<Something> buffer = new ArrayList<>(20); Queues.drain(input,buffer,20,TimeUnit.MILLISECONDS); doWrite(buffer); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |