gpt4 book ai didi

java - 优雅的方式来获取过滤器的索引或首先使用 RX Java

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:09 24 4
gpt4 key购买 nike

我只是在练习 RX Java,并希望获得与过滤器匹配的项目在数组中的位置。我看不到任何明显的方法。我正在考虑压缩一个范围和可迭代的可观察对象或其他东西,但它很快变得比 for 循环更冗长和复杂。

最佳答案

RxJava 中曾经有mapWithIndexzipWithIndex 运算符,但它们被删除了,参见here为什么。

所以你必须写一次库样板:

class Indexed<T> {
final int index;
final T value;
public Indexed(T value, int index) {
this.index = index;
this.value = value;
}
@Override
public String toString() {
return index + ") " + value;
}
}

Iterable<Integer> naturals = IntStream.iterate(0, i -> i + 1)::iterator;

但是,你可以让它相当简洁:

Observable<String> obs = Observable.just("zero", "one", "two", "three");
obs.zipWith(naturals, (s, i) -> new Indexed<String>(s, i))
.filter(e -> e.value.length() > 4)
.subscribe(System.out::println);

关于java - 优雅的方式来获取过滤器的索引或首先使用 RX Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com