2016-09-29 5 views
0

В Java у меня есть List<String[]> myList, и я хотел был бы иметь возможность сортировать его различными способами. Например, сортируйте его по row[0] или, возможно, row[0], а затем по row[1] и т. Д., Где row[i] является String[] по индексу i.Сортировка списка строк [] s?

Можно ли это сделать или Java не поддерживает его?

+0

Посмотрите на статические методы в [Компаратор] (https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html). Например, чтобы отсортировать по третьему элементу в каждом массиве, вы можете использовать компаратор 'List list = ...; list.sort (Comparator.comparing (a -> a [2])); ' –

ответ

3

Пример JDK1.7. Вы можете изменить индекс в реализации компаратора.

List<String[]> myList = new ArrayList<String[]>(); 

myList.add(new String[]{"a","g","x"}); 
myList.add(new String[]{"c","f","y"}); 
myList.add(new String[]{"b","d","z"}); 

Collections.sort(myList, new Comparator<String[]>() { 
    @Override 
    public int compare(String[] o1, String[] o2) { 
    return o1[0].compareTo(o2[0]); 
    } 
}); 
+0

Huh, не знал, что вы можете передать Comparators в качестве аргумента Collections.sort(). Круто! Благодарю. – KaliMa

Смежные вопросы