004 配列(要素の呼び出し) 016 解答例

public class SeparateOddEvenExample {
    public static void main(String[] args) {
        // 整数の配列を定義
        int[] originalArray = {10, 21, 36, 42, 55, 67, 78, 89, 94, 100};

        // 奇数要素用と偶数要素用の配列を初期化
        int[] oddArray = new int[originalArray.length];
        int[] evenArray = new int[originalArray.length];

        int oddCount = 0; // 奇数要素の数
        int evenCount = 0; // 偶数要素の数

        // 元の配列を走査し、奇数と偶数を別々の配列に分離
        for (int i = 0; i < originalArray.length; i++) {
            if (originalArray[i] % 2 != 0) {
                // 奇数の場合、oddArrayに追加
                oddArray[oddCount] = originalArray[i];
                oddCount++;
            } else {
                // 偶数の場合、evenArrayに追加
                evenArray[evenCount] = originalArray[i];
                evenCount++;
            }
        }

        // 奇数要素用の新しい配列を作成
        int[] finalOddArray = new int[oddCount];
        System.arraycopy(oddArray, 0, finalOddArray, 0, oddCount);

        // 偶数要素用の新しい配列を作成
        int[] finalEvenArray = new int[evenCount];
        System.arraycopy(evenArray, 0, finalEvenArray, 0, evenCount);

        // 結果を表示
        System.out.print("元の配列: ");
        for (int num : originalArray) {
            System.out.print(num + " ");
        }
        System.out.println();
        System.out.print("奇数要素: ");
        for (int num : finalOddArray) {
            System.out.print(num + " ");
        }
        System.out.println();
        System.out.print("偶数要素: ");
        for (int num : finalEvenArray) {
            System.out.print(num + " ");
        }
    }
}

このプログラムでは、元の整数の配列を走査し、奇数要素と偶数要素を別々の配列に分離します。最終的に、奇数要素と偶数要素が別々の新しい配列に格納され、結果が表示されます。

奇数と偶数の分離

「奇数と偶数の分離」とは、整数の配列を奇数と偶数の要素に分けるプロセスです。このプロセスは、整数データを異なる条件(奇数と偶数)に基づいて分類するために使用されます。以下は、奇数と偶数の分離プログラムの手順の解説です。

新しい配列の作成:
奇数と偶数の要素を格納するための新しい配列を作成します。通常、奇数用の配列と偶数用の配列が別々に用意されます。

int[] oddArray; // 奇数要素用の配列
int[] evenArray; // 偶数要素用の配列

元の配列の走査:
奇数と偶数を分離するために、元の整数の配列をループを使用して走査します。

for (int i = 0; i < originalArray.length; i++) {
    // 各要素の奇数または偶数を判定
}

奇数と偶数の判定:
ループ内で、各要素が奇数か偶数かを判定します。通常、奇数は2で割った余りが1(% 2 == 1)であり、偶数は2で割った余りが0(% 2 == 0)です。

if (originalArray[i] % 2 == 0) {
    // 偶数の場合、evenArray に追加
} else {
    // 奇数の場合、oddArray に追加
}

新しい配列の作成:
分離された奇数と偶数の要素が元の配列から抽出され、新しい配列にコピーされます。これにより、不要な空き要素が配列に残らないようになります。

int[] finalOddArray = new int[oddCount]; // 奇数要素の新しい配列
System.arraycopy(oddArray, 0, finalOddArray, 0, oddCount);

int[] finalEvenArray = new int[evenCount]; // 偶数要素の新しい配列
System.arraycopy(evenArray, 0, finalEvenArray, 0, evenCount);


結果の使用:
奇数要素と偶数要素が別々の新しい配列に分離されたら、これらの配列を必要に応じて表示したり、他の処理に使用したりできます。

このプロセスを使用することで、整数の配列内の奇数と偶数の要素を分離し、それぞれのカテゴリに適した処理を行うことが可能になります。

「0004 配列」問題集リスト