Witam, gdzieś w necie znalazłem taki oto skrypt:
import java.util.*;
public class Sort
{
public static void main(String[] args)
{
final int[] numbers = {10,40,3,14,25,16};
final String[] colors = {"white","blue","red","black","orange","purple"};
Integer[] sortOrder = new Integer[numbers.length];
for(int i=0; i<sortOrder.length; i++)
{
sortOrder[i] = i;
}
Arrays.sort(sortOrder,new Comparator<Integer>()
{
public int compare(Integer a, Integer b)
{
return numbers[b]-numbers[a];
}
});
for(int i=0;i<sortOrder.length;i++)
{
System.out.println(numbers[sortOrder[i]]+"-"+colors[sortOrder[i]]);
}
}
}
Następuje sortowanie liczb od największej do najmniejszej, każda liczba ma nadal przyporządkowany swój kolor:
40-blue
25-orange
16-purple
14-black
10-white
3-red
Pewnie dla Was to pikuś, ale jakoś nie potrafię tego samego zrobić z tablicą typy double. Np mamy takie tablice:
final double[] numbers = {10.5,40.8,3.14,14.8,25.9,16.1};
final String[] colors = {"white","blue","red","black","orange","purple"};
Poza tym byłbym wdzięczny jakby ktoś wytłumaczył mi tak na "chłopski rozum" dziłanie Comparatora (najlepiej na podstawie powyższego kodu), jakoś nie mogę tego pojąć.