跳到主要内容

简述调整数组顺序使奇数位于偶数前面Java ?

参考答案:

在Java中,你可以使用自定义的比较器(Comparator)来调整数组的顺序,使得奇数位于偶数前面。下面是一个简单的示例,展示了如何做到这一点:

import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        // 初始数组
        int[] arr = {2, 4, 1, 6, 3, 8, 5, 7, 9, 0};

        // 使用自定义比较器进行排序
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer a, Integer b) {
                // 如果a和b都是奇数或都是偶数,保持原始顺序
                if ((a % 2 == 0 && b % 2 == 0) || (a % 2 != 0 && b % 2 != 0)) {
                    return a - b;
                }

                // 如果a是奇数,b是偶数,a应该在b前面
                if (a % 2 != 0 && b % 2 == 0) {
                    return -1;
                }

                // 如果a是偶数,b是奇数,b应该在a前面
                if (a % 2 == 0 && b % 2 != 0) {
                    return 1;
                }

                // 这部分实际上不应该被执行,因为我们已经处理了所有情况
                return 0;
            }
        });

        // 输出排序后的数组
        System.out.println(Arrays.toString(arr));
    }
}

在这个示例中,我们首先定义了一个包含整数的数组。然后,我们使用Arrays.sort()方法和一个自定义的比较器来排序数组。比较器检查每对元素,并根据它们是否是奇数或偶数来确定它们的顺序。如果两个元素都是奇数或都是偶数,则保持它们的原始顺序。如果一个是奇数,另一个是偶数,那么奇数应该在偶数前面。

最后,我们打印出排序后的数组,你可以看到奇数都位于偶数前面。