需求: 定义一个数组其中包含多个数字。用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。(可以创建其他数组,不必须在原数组中改变)

分析:
1.初始化一个数组,里面既可以存储奇数也可以存储偶数(下面称这个个数组为原数组)。
2.再次定义两个数组,一个用来存放从原数组中挑出来的奇数int[] anotherOdds = new int[arr.length];,一个用来存放从原数组中挑出来的偶数int[] anotherEve = new int[arr.length];。数组长度均为原数组长度。
3.定义变量int j=0;,用来计数原数组中有多少个奇数,并且在遍历原数组的时候遇到奇数可以存放到奇数数组中,同时j++;。同理,定义变量int k=0;,用来计数原数组中有多少个偶数,并且在遍历原数组的时候遇到偶数可以存放到偶数数组中,同时k++;
4.遍历偶数数组,把偶数数组中的数值拿出来放到奇数数组下标为j起始的位置,放入成功则执行j++;

下面为需求实现代码:
import java.util.Arrays;
import java.util.Scanner;
/*
    定义一个数组其中包含多个数字。
    用自己的方式最终实现,奇数放在数组的左边,
    偶数放在数组的右边。
    (可以创建其他数组,不必须在原数组中改变)
 */
public class Demo19 {
    public static void main(String[] args) {
        //创建Scanner对象
        Scanner scanner = new Scanner(System.in);
        //输出提示信息
        System.out.println("请输入数组的长度:");
        //接受用户输入:
        int getUserNum = scanner.nextInt();
        //动态初始化一个数组
        int[] arr = new int[getUserNum];
        for (int i = 0; i < arr.length; i++) {
            //输出提示信息
            System.out.println("请往数组中输入数字:");
            int getUserIn = scanner.nextInt();
            arr[i] = getUserIn;
        }
        //输出提示信息
        System.out.println("处理前的数组为:"+ Arrays.toString(arr));
        //判断奇数还是偶数
        //重新定义另一个数组用于接收奇数数据
        int[] anotherOdds = new int[arr.length];
        //再次定义一个数组接受偶数数据
        int[] anotherEve = new int[arr.length];

        //定义一个变量用于得到新数组的奇数索引
        int j = 0,k=0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]%2!=0){
                anotherOdds[j] = arr[i];
                j++;
            }else {
                anotherEve[k] = arr[i];
                k++;
            }
        }
        for (int i = 0; i < k; i++) {
            anotherOdds[j] = anotherEve[i];
            j++;
        }
        //输出一下新数组
        System.out.println("处理后的数组为:"+Arrays.toString(anotherOdds));
//        System.out.println(Arrays.toString(anotherEve));
//        System.out.println(j);

    }
}
执行效果如下

java入门 java入门数组基础答案_Java基础