У меня есть объект-значение, структура которого выглядит следующим образом:
class MyValueObject {
String travellerName;
List<String> countryTags;
// Getters and setters
}
В этом я веду список путешественников и стран, которые они посетили. например,
Ричард -> Индия, Польша, Австралия
Джон -> США, Австралия, Мальдивы
Эмма -> США
Теперь я добавляю функцию фильтра, которая выдаст список всех путешественников, посетивших выбранные страны.
В качестве входных данных будет предоставлен список стран.
List<String> countryFilter;
Это фильтр имеет опцию множественного выбора.
Отфильтрованный результат должен содержать как AND, так и OR результаты.
То есть, если входные данные - США и Австралия, результат будет:
Джон -> США, Австралия, Мальдивы
Ричард -> Индия, Польша, Австралия
Эмма -> США
Результат должен быть отсортирован по порядку совпадения AND должны быть показаны выше совпадений OR.
Вопрос:
Как отсортировать совпадения?
Должен ли я написать компаратор? Если да, какой-то пример будет очень полезным.
Пожалуйста, предложите.
Спасибо.