Итак, вы, как это:
List<String> list1 = Arrays.asList("x", "2");
List<String> list2 = Arrays.asList("a", "5");
List<String> list3 = Arrays.asList("g", "1");
И один супер-лист
Set<List<String>> set = new HashSet<List<String>>();
set.add(list1);
set.add(list2);
set.add(list3);
И вам нужен отсортированный список по второй строки:
List<List<String>> list = new ArrayList<List<String>>(set);
Collections.sort(list, new Comparator<List<String>>() {
@Override
public int compare(List<String> o1, List<String> o2) {
//Index 1 = second element
return o1.get(1).compareTo(o2.get(1));
}
});
Полный пример
Список list1 = Arrays.asList ("x", "2"); Список list2 = Arrays.asList ("a", "5"); Список list3 = Arrays.asList ("g", "1");
Set<List<String>> set = new HashSet<List<String>>();
set.add(list1);
set.add(list2);
set.add(list3);
List<List<String>> list = new ArrayList<List<String>>(set);
Collections.sort(list, new Comparator<List<String>>() {
@Override
public int compare(List<String> o1, List<String> o2) {
//Index 1 = second element
return o1.get(1).compareTo(o2.get(1));
}
});
for(List<String> li : list) {
System.out.println(li);
}
Создает этот выход/сортировки:
[g, 1]
[x, 2]
[a, 5]
Вы можете использовать TreeSet, как показано здесь http://stackoverflow.com/questions/4165832/sorting-values-of-set. –
Вы можете использовать метод 'Collections.sort()', реализовав интерфейс 'Comparator' для дополнительного параметра. – Hemang
есть разница между этим scenerio и моим. Treeset не работает в моем scenerio. –