Witam
Jako parametr otrzymuje tablice doubli, moim zadaniem jest podzielic ja na parzyste i nieparzyste. Parzyste posortowac malejaco i nastepnie polaczyc te dwie tablice.
Np. dostaje tablice [1,2,3,4,5,6] a na wyjsciu mam - [1,3,5,6,4,2].
Zrobilem to wykorzystujac Jave 8 i zdaje sobie sprawe, ze mozna to bylo zrobic lepiej.Problem polega na tym, ze sortowanie malejace daje mi bledne wyniki.
Ponizej podaje kod i przyklad, na ktorym sie wykladam.
public static Double[] sortItOut(Double[] array) {
List<Double> odd = Arrays.stream(array).filter(i -> i%2 != 0).collect(Collectors.toList());
List<Double> even = Arrays.stream(array).filter(i -> i%2 == 0).collect(Collectors.toList());
Collections.sort(odd);
Collections.reverse(even);
odd.addAll(even);
return odd.stream().toArray(Double[]::new);
}
Dane wejsciowe:
new Double[]{11d, 22d, 33d, 44d, 55d, 55d, 90.4, 4d, 78d}
Dane wyjsciowe: 11.0 33.0 55.0 55.0 90.4 78.0 4.0 44.0 22.0
Ktos umie wyjasnic skad sie wziela tam ta 4 ? :D