У меня есть два списка строк, запрещенныхList и inputList, и я хочу создать еще один список, содержащий только элементы из inputList, которых нет в запрещенном списке.
Пока я делаю это следующим образом:
List<String> finalList= new ArrayList<>();
for (String ele : forbiddenList) {
if (!inputList.contains(ele))
finalList.add(ele);
}
Как это сделать лучше, возможно, используя любой список в качестве возвращаемых результатов и, следовательно, без необходимости создавать другой результирующий список (не используя встроенные методы Java 8)
Спасибо.
Что значит «лучше»?
и я хочу создать еще один список, содержащий только элементы из inputList, которых нет в запрещенном списке. Разве это не будет просто копией «inputList» (или самого inputList)
Описание не соответствует коду. В коде вы вставляете элементы из списка запрещенных в окончательный список. Вы должны перебрать inputList




В коллекциях есть родной удалитьВсе метод для удаления элементов одного списка из другого списка.
inputList.removeAll(forbiddenList);
(код которого будет очень похож на то, что опубликовал ОП, но в обратном порядке и после избыточного шага объединения двух списков, которые в настоящее время не вместе и не принадлежат друг другу)
Обязательно ли использовать списки? Здесь было бы лучше использовать наборы