Существуют ли какие-либо методы для этого? Я искал, но не смог найти ни одного.
Еще один вопрос: мне нужны эти методы, чтобы я мог фильтровать файлы. Некоторые из них являются AND фильтрами, а некоторые - OR фильтрами (например, в теории множеств), поэтому мне нужно фильтровать по всем файлам и объединять / пересекать списки массивов, которые содержат эти файлы.
Должен ли я использовать другую структуру данных для хранения файлов? Есть ли что-нибудь еще, что могло бы обеспечить лучшее время выполнения?
Переведено автоматически
Ответ 1
Вот простая реализация без использования какой-либо сторонней библиотеки. Главное преимущество перед retainAll, removeAll и addAll в том, что эти методы не изменяют исходные списки, вводимые методами.
List<T> union = Stream.concat(list1.stream(), list2.stream()) .distinct() .collect(Collectors.toList());
Если у кого-нибудь есть решение получше / быстрее, дайте мне знать, но это решение является хорошим однострочником, который можно легко включить в метод без добавления ненужного вспомогательного класса / метода и при этом сохранить читаемость.