混合使用Java流+;Rxjava

混合使用Java流+;Rxjava,java,java-stream,rx-java,reactive-programming,rx-java2,Java,Java Stream,Rx Java,Reactive Programming,Rx Java2,假设我有一个可观察的下游某处,我选择使用Java8流过滤,而不是使用rxjava操作符。 这会引起什么问题吗 List<String> stringList = new ArrayList<>(); Observable.just(stringList) .map(new Function<List<String>, List<String>>() { @Override

假设我有一个可观察的下游某处,我选择使用Java8流过滤,而不是使用rxjava操作符。 这会引起什么问题吗

 List<String> stringList = new ArrayList<>();
    Observable.just(stringList)
            .map(new Function<List<String>, List<String>>() {
                @Override
                public List<String> apply(List<String> strings) throws Exception {
                    return strings.stream().filter(it -> it.contains("randomText"))
                            .collect(Collectors.toList());
                }
            }).subscribe(new Consumer<List<String>>() {
        @Override
        public void accept(List<String> strings) throws Exception {
            //do something with list
        }
    });
List-stringList=new-ArrayList();
可观察。仅(stringList)
.map(新函数(){
@凌驾
公共列表应用(列表字符串)引发异常{
返回strings.stream().filter(it->it.contains(“随机文本”))
.collect(Collectors.toList());
}
}).订阅(新消费者){
@凌驾
公共void接受(列表字符串)引发异常{
//用列表做些什么
}
});
消费者
接受
T
,因此您可以使用
T
提供的所有方法

无论如何,请检查,RxJava提供了多个操作符,如
map
flatMap
过滤器
,等等。例如,您可以在代码中替换第一个
map
,如下所示:

Observable.fromIterable(stringList).filter(x -> x.contains(RANDOM_TEXT))

为什么在这里使用RxJava?您可以编写简单的Java流语句,如stringList.stream().filter()等。