Безопасно ли смешивать потоки Java + Rxjava

Предполагая, что у меня есть наблюдаемое и где-то ниже по течению, я решил фильтровать с использованием потоков java 8 вместо использования операторов 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
        }
    });

почему вы используете здесь RxJava? Вы можете написать простое предложение потока Java, например stringList.stream().filter() и т. д.

Alexei Kaigorodov 13.02.2019 13:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
221
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Consumer<T> принимает T, поэтому вы можете использовать все методы, предоставляемые T.

В любом случае проверьте документация, RxJava предоставляет несколько операторов, таких как map, flatMap, filter и т. д. Например, вы можете заменить в своем коде первый map следующим образом:

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

Другие вопросы по теме