所以我有一个整数数组,练习告诉我仅对偶数元素进行排序。我知道可以通过简单地检查每个元素(可能是O(n ^ 2))来轻松实现。
我想做的是编写一个只接受偶数作为参数的比较器,然后使用它对整个数组进行排序。
Comparator<Integer> comp = new Comparator<>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
};
Arrays.sort(array, comp));
有什么办法吗? 谢谢
答案 0 :(得分:1)
我不会尝试创建一个Comparator
。似乎更难以实现它。相反,您可以将数组拆分为奇数和偶数。
用ArrayList#add(index,number)
答案 1 :(得分:0)
public static void sortEven(int[] inputArray) {
List list = new ArrayList();
for (int i = 0; i < inputArray.length; i++) {
if (inputArray[i]%2== 0)
list.add(inputArray[i]);
}
Collections.sort(list);
int j=0;
for (int i = 0; i < inputArray.length; i++) {
if (inputArray[i]%2== 0){
inputArray[i] = Integer.parseInt(list.get(j).toString());
j++;}
}
for (int i = 0; i < inputArray.length; i++) {
System.out.println(inputArray[i]);
}
}