Как создать список элементов, которые присутствуют в одном списке, но в другом?

У меня есть два списка строк, запрещенныхList и inputList, и я хочу создать еще один список, содержащий только элементы из inputList, которых нет в запрещенном списке.

Пока я делаю это следующим образом:

    List<String> finalList= new ArrayList<>(); 
    for (String ele : forbiddenList) {
        if (!inputList.contains(ele))
            finalList.add(ele);
    }

Как это сделать лучше, возможно, используя любой список в качестве возвращаемых результатов и, следовательно, без необходимости создавать другой результирующий список (не используя встроенные методы Java 8)

Спасибо.

Обязательно ли использовать списки? Здесь было бы лучше использовать наборы

OneCricketeer 26.05.2024 15:08

Что значит «лучше»?

g00se 26.05.2024 15:10

и я хочу создать еще один список, содержащий только элементы из inputList, которых нет в запрещенном списке. Разве это не будет просто копией «inputList» (или самого inputList)

g00se 26.05.2024 15:17

Описание не соответствует коду. В коде вы вставляете элементы из списка запрещенных в окончательный список. Вы должны перебрать inputList

Asmir 26.05.2024 16:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
4
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

В коллекциях есть родной удалитьВсе метод для удаления элементов одного списка из другого списка.

inputList.removeAll(forbiddenList);

(код которого будет очень похож на то, что опубликовал ОП, но в обратном порядке и после избыточного шага объединения двух списков, которые в настоящее время не вместе и не принадлежат друг другу)

g00se 26.05.2024 15:18

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