Я не думаю, что какая-то одна Коллекция обязательно лучше, чем другая, я бы использовал что-то, что расширяет список, а не набор, хотя и определенно не карту.
Что я хотел бы сделать, так это то, что в моем вызове Collection.sort
я бы проверил, равно ли число mod 2 (number%2
) нулю, тогда я бы сделал простое compareTo
, иначе я бы сделал Integer.MAX_INT - oddNumber
, а затем сделать сравнение.Таким образом, чем больше нечетное число, тем меньше сгенерированное число, и оно будет отсортировано в конец списка в порядке убывания.
Integer num1 = (o1%2 == 0)? new Integer(o1) : new Integer(Integer.MAX_INT - o1);
Integer num2 = (o2%2 == 0)? new Integer(o2) : new Integer(Integer.MAX_INT - o2);
return num1.compareTo(num2);
Выше приведен только код sudo, не воспринимайте его слишком буквальноЭто просто, чтобы дать вам представление.