Сортировка списка массивов строк

Подскажите как эффективно отсортировать список массивов строк по определенному элементу. Например

        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,
→ Ссылка