两道经典数组题!!!

/*  第一题:
    (1)、在这个类中定义一个方法m1,形参是int[]数组类型,
    方法内实现将传递过来的数组中的所有偶数的元素放到一个新数组中,
    并返回这个新数组(这个方法的返回值类型是int[]类型);
    (2)、再次定义一个方法m2,形参是int[]类型,方法内实现将传递过来的数组中的所有奇数的元素放到一个新数组中,
    并返回这个新数组(这个方法的返回值类型是int[]类型);
    (3)、在类中创建main方法,在main方法中完成如下功能:
    定义一个长度为8的int型数组arr,里面存储的值为{11,22,33,44,55,66,77,88},
    分别调用m1方法和m2方法,进行测试.
*/

public class Test01 {
    public static void main(String[] args) {
        int[] arr = {11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 222, 333, 23, 432, 23, 50, 6, 0};
        String s = Arrays.toString(m1(arr));     //  记住一定要保存新数组!!!!!!!
        System.out.println("偶数是:" + s);
        String s1 = Arrays.toString(m2(arr));
        System.out.println("奇数是:" + s1);
    }

    //判断偶数个数的方法
    public static int count(int[] arr) {
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 0) {
                count++;
            }
        }
        return count;
    }

    //判断奇数个数的方法
    public static int count2(int[] arr) {
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 != 0) {
                count++;
            }
        }
        return count;
    }

    //判断传来的数组是否为偶数方法
    public static int[] m1(int[] ou) {
        int c = count(ou);   //调用count()方法,获取该传入数组偶数的个数
        int[] ou1 = new int[c];
        int index = 0;
        for (int i = 0; i < ou.length; i++) {
            if (ou[i] % 2 == 0) {
                ou1[index++] = ou[i];
            }
        }
        return ou1;
    }

    //判断传来的数组是否为奇数的方法
    public static int[] m2(int[] ji) {
        int c = count2(ji);     //调用count2()方法,获取该传入数组奇数的个数
        int[] ji1 = new int[c];
        int index = 0;
        for (int i = 0; i < ji.length; i++) {
            if (ji[i] % 2 != 0) {
                ji1[index++] = ji[i];
            }
        }
        return ji1;
    }
}
/*  第二题:
    定义一个数组为:int[] arr = {1,2,333,4,5,611,22,33,44,55,66};
    使用方法,实现将arr数组中左边放置偶数,右边放置奇数
*/
public class Test04 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 333, 4, 5, 611, 22, 33, 44, 55, 66};
        String str = Arrays.toString(arr(arr));
        System.out.println(str);
    }

    public static int[] arr(int[] arr) {
        int ocount = 0;
        //判断偶数个数
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 0) {
                ocount++;
            }
        }
        //把偶数保存在一个新数组
        int[] newOstr = new int[ocount];
        int oindex = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 0) {
                newOstr[oindex++] = arr[i];
            }
        }

        //把奇数保存在一个新数组
        int[] newJstr = new int[arr.length - ocount];
        int jindex = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 != 0) {
                newJstr[jindex++] = arr[i];
            }
        }

        //把偶数数组和奇数数组保存在一个新数组
        int[] endArr = new int[arr.length];
        int endIndex = 0;
        //遍历偶数数组
        for (int i = 0; i < newOstr.length; i++) {
            endArr[endIndex++] = newOstr[i];
        }
        //奇数数组接着偶数数组遍历
        for (int i = 0; i < newJstr.length; i++) {
            endArr[endIndex++] = newJstr[i];
        }
        return endArr;
    }
}

发表评论