Сортировка списка массивов строк
Подскажите как эффективно отсортировать список массивов строк по определенному элементу. Например
String[] pharma1 = new String[] { "304","19","pharma1","ssilka.ru",};
String[] pharma2 = new String[] { "390","19","pharma1","ssilka.ru",};
String[] pharma3 = new String[] { "409","19","pharma1","ssilka.ru",};
String[] pharma4 = new String[] { "108","19","pharma1","ssilka.ru",};
String[] pharma5 = new String[] { "1000","19","pharma1","ssilka.ru",};
List<String[]> test = new ArrayList<>();
Collections.addAll(test,pharma1,pharma2,pharma3,pharma4,pharma5);
Есть вот такой тестовый список массивов, как эффективно отсортировать его например по 0 элементу. То есть проще говоря надо отсортировать список test по 0 элементу массивов, которые в нем хранятся.
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Вы вопрос поставили немного не верно. Есть список объектов как отсортировать по первому полю.
Можно так
public static void main(String[] args) throws Exception {
String[] pharma1 =
new String[] {
"304", "19", "pharma1", "ssilka.ru",
};
String[] pharma2 =
new String[] {
"390", "19", "pharma1", "ssilka.ru",
};
String[] pharma3 =
new String[] {
"409", "19", "pharma1", "ssilka.ru",
};
String[] pharma4 =
new String[] {
"108", "19", "pharma1", "ssilka.ru",
};
String[] pharma5 =
new String[] {
"1000", "19", "pharma1", "ssilka.ru",
};
List<String[]> test = new ArrayList();
Collections.addAll(test, pharma1, pharma2, pharma3, pharma4, pharma5);
test.sort((a, b) -> Integer.compare(Integer.parseInt(a[0]), Integer.parseInt(b[0])));
test.forEach(
item -> {
List.of(item)
.forEach(
i -> {
System.out.print(i + ", ");
});
System.out.println("");
});
}
результат
108, 19, pharma1, ssilka.ru,
304, 19, pharma1, ssilka.ru,
390, 19, pharma1, ssilka.ru,
409, 19, pharma1, ssilka.ru,
1000, 19, pharma1, ssilka.ru,