RxJava搜索列表中的项目

bre*_*ine 2 observable rx-java

我试图把它变成一个Observable而没有外部变量或额外的类.这可能吗?这是一个列表的基本搜索:

    //...
    for(int i = 0; i < items.size(); i++) {
        if(items.get(i).id == findId) return i;
    }
    return -1;
Run Code Online (Sandbox Code Playgroud)

所以基本上我有一个字符串id,如果我发现我想在"items"列表中返回项目索引.

m.o*_*hov 6

在没有额外遍历开销的情况下执行此操作的一种"整洁"方式如下:

  Observable<Integer> index = Observable.from(items)
            .takeWhile(item -> item.id != findId)
            .count()
            .map(count -> count == data.size() ? -1 : count);
Run Code Online (Sandbox Code Playgroud)

但是我会坚持使用非Rx方法来处理这种简单的用例