Первым шагом должно стать определение пользовательского заказа.Я бы сделал это, используя карту.
Map<String, Integer> orderMap = new HashMap<>();
int order = 0;
for(String specialWord : yourListOfSpecialWords){
orderMap.put(specialWord, order++);
}
Теперь создайте компаратор, используя эту карту и естественный порядок в качестве резервной копии:
Comparator<String> comparator = ((Comparator<String>) (o1, o2) -> {
int leftScore = orderMap.getOrDefault(o1, Integer.MAX_VALUE);
int rightScore = orderMap.getOrDefault(o2, Integer.MAX_VALUE);
return Integer.compare(leftScore, rightScore);
}).thenComparing(String::compareTo);
Используйте этот компаратор для сортировки списка.Примечание: вы, вероятно, хотите инициализировать свою карту только один раз и хранить ее в константе или, по крайней мере, в кэше.
Но если ваш особый случай - это всего лишь одно слово, как предлагает ваше обновление, то этокурс излишний, и вы должны пойти с одним из других ответов здесь.