Вопрос: «Сортировка коллекции».Так что вы не можете использовать Collections.sort(List<T> l, Comparator<? super T> comparator)
.
Некоторые советы:
Для типа коллекции:
Comparator<String> defaultComparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
};
Collection<String> collection = getSomeStringCollection();
String[] strings = collection.toArray(new String[collection.size()]);
Arrays.sort(strings, defaultComparator);
List<String> sortedStrings = Arrays.asList(strings);
Collection<String> collection = getSomeStringCollection();
List<String> list = new ArrayList(collection);
Collections.sort(list, defaultComparator);
collection = list; // if you wish
Для типа списка:
List<String> list = getSomeStringList();
Collections.sort(list, defaultComparator);
Для типа набора:
Set<String> set = getSomeStringSet();
// Than steps like in 'For Collection type' section or use java.util.TreeSet
// TreeSet sample:
// Sorted using java.lang.Comparable.
Set<String> naturalSorted = new TreeSet(set);
Set<String> set = getSomeStringSet();
Set<String> sortedSet = new TreeSet(defaultComparator);
sortedSet.addAll(set);
Версия Java 8.Существует java.util.List#sort(Comparator<? super E> c)
метод
List<String> list = getSomeStringList();
list.sort(defaultComparator);
или
List<String> list = getSomeStringList();
list.sort((String o1, String o2) -> o1.compareTo(o2));
или для типов, реализующих Comparable:
List<String> list = getSomeStringList();
list.sort(String::compareTo);