У меня есть список двойного массива, и я хотел бы отсортировать его по первому и последнему полю.Пока что я могу отсортировать его только по 1 элементу массива.
Реальное состояние:
0 1 2
------- ------- -------
78 100 0
78 100 1
0 100 0
104 100 1
Ожидается:
0 1 2
------- ------- -------
0 100 0
78 100 1
78 100 0
101 100 1
Я хочу отсортировать поле по значению 1-го элемента массива.Если значения 1 и 2 равны, я хочу отсортировать по 3-му элементу, где сначала должно быть 1, а затем 0 (будет только 1 и 0 значение)
List<Double[]> splitList = new ArrayList<>();
Double[] tmp1 = { 78d, 100d, 0d };
Double[] tmp2 = { 78d, 100d, 1d };
Double[] tmp3 = { 0d, 100d, 0d };
Double[] tmp4 = { 104d, 100d, 1d };
splitList.add(tmp1);
splitList.add(tmp2);
splitList.add(tmp3);
splitList.add(tmp4);
splitList.sort(Comparator.comparingDouble(a -> a[0]));
Этот сортирует меня по первомуэлемент.Я нашел решение для сортировки по двум элементам https://stackoverflow.com/a/26865122/9774735, поэтому я попробовал его:
splitList.sort(Comparator.comparingDouble(a -> a[0]).thenComparingDouble(b -> b[2]));
, и он выдал ошибку:
Multiple markers at this line
- The type of the expression must be an array type but it resolved
to Object
- The type of the expression must be an array type but it resolved
Как я могу сравнить СписокМассив