2015-02-08 2 views
0

Предположим, что у меня есть связанный список Float массивов,Как отсортировать LinkedList массивов Float по первому индексу в каждом массиве?

LinkedList<Float[]> foo = new LinkedList<Float[]>(); foo.add(new Float[] {2.3, 2.4}); foo.add(new Float[] {1.0, 3.2}); foo.add(new Float[] {1.5, 3.5});

Я хочу, чтобы отсортировать этот LinkedList первым элементом каждого массива поплавка в каждом узле (2.3, 1.0, и 1.5).

В этом примере после сортировки первый узел будет содержать массив {1.0, 3.2}, следующий будет иметь массив {1.5, 3.5}, а последний узел будет содержать {2.3, 2.4}.

+0

Создайте [Comparator] (http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html), который принимает два таких массива Float и сравнивает их по первому элементу. Затем передайте LinkedList с компаратором в [Collections.sort()] (http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort (java.util.List, % 20java.util.Comparator)) – alfasin

ответ

0

Используйте обычай Comparator<Float[]>, который сравнивает первые элементы. Что-то вроде (a,b)->Float.compare(a[0],b[0]).

Затем используйте Collections.sort(List<Float[]>,Comparator<Float>), чтобы отсортировать ваш массив.

+0

Сопоставимый должен быть компаратором. – immibis

+0

Упс ... Хорошо исправлено –

+0

Вы, вероятно, хотите 'Float []' там. –

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