Поскольку вы указали, что хотите уникальные элементы в отсортированном порядке, в Java лучшим инструментом для этого является TreeSet
(хотя любой SortedSet
реализация подойдет). Обычно класс TreeSet
хранит элементы в порядке возрастания, но, к счастью, мы можем изменить это с помощью пользовательского объекта Comparator
в качестве аргумента.
Я предполагаю, что по вашему вопросу вы хотите, чтобы строки сортировались в обратном алфавитном порядке, поскольку здесь нет смысла в хронологическом порядке, но на самом деле вы можете реализовать свой собственный Comparator
по мере необходимости. Теперь предоставленный вами Comparator
будет сортировать строки в соответствии с исходным способом Java: строки, расположенные ниже в алфавите, будут сравниваться как поступающие после строк, "ближе" к началу алфавита (например, "bananas".compareTo("zebra")
вернет положительный результат , "zebra".compareTo("bananas")
отрицательный. Чтобы изменить алфавитный порядок, мы можем использовать эту двойственность и обратный порядок сравнений, сравнить второй аргумент с первым, как таковой:
class StringComparator implements Comparator<String>{
public int compare(String arg0, String arg1) {
return arg1.compareTo(arg0);
}
}
Теперь передайте объект этого класса в ваш TreeSet<String>
объект, и вы должны быть установлены.