HOWTO · Java

Java の配列で繰り返される要素を数える

このチュートリアルでは、Java で配列内の繰り返される要素をカウントする方法を示します。

このページの内容

このチュートリアルでは、Java で配列内の繰り返し要素をカウントする方法を示します。

Java の配列で繰り返される要素を数える

配列内の重複要素をカウントするプログラムを作成できます。 配列は、ソートされていない場合とソートされている場合があります。

このチュートリアルでは、並べ替えられた配列と並べ替えられていない配列で繰り返される要素をカウントする方法を示します。

配列内で繰り返される要素をカウントするには、次の手順に従います。

  • まず、入力配列を取得します。
  • 次に、1つの一時配列を作成します。
  • 次のステップは、入力配列をトラバースすることです。
  • トラバース中に、現在の要素が一時配列に存在するかどうかを確認します。 次に、現在の要素のチェックをスキップする必要があります。
  • 現在の要素が利用できない場合は、現在の要素と次のすべての要素を比較し続けます。
  • いずれかの段階で一致が見つかった場合は、その要素を一時配列に追加します。
  • 最後のステップは、一時配列から繰り返される要素の合計を表示することです。

上記の手順を Java コードに実装しましょう。

package delftstack;

public class Example {
  public static void main(String[] args) {
    int InputArray[] = {100, 220, 100, 400, 200, 100, 200, 600, 400, 700};
    int TemporaryArray[] = new int[InputArray.length];
    int RepeatCount = 0;

    for (int x = 0; x < InputArray.length; x++) {
      int element = InputArray[x];
      boolean flag = false;
      for (int y = 0; y < RepeatCount; y++) {
        if (TemporaryArray[y] == element) {
          flag = true;
          break;
        }
      }

      if (flag) {
        continue;
      }

      for (int y = x + 1; y < InputArray.length; y++) {
        if (InputArray[y] == element) {
          TemporaryArray[RepeatCount++] = element;
          break;
        }
      }
    }

    System.out.println("The Total Repeated elements in the array: " + RepeatCount);
    System.out.println("The Repeated elements are : ");
    for (int x = 0; x < RepeatCount; x++) {
      System.out.print(TemporaryArray[x] + " ");
    }
  }
}

上記のコードは、繰り返される数字をカウントし、それらを出力します。 出力を参照してください。

The Total Repeated elements in the array: 3
The Repeated elements are :
100 400 200

上記は、ソートされた配列とソートされていない配列の両方で機能します。 しかし、より単純化するために、ソートされた配列に対してのみ機能するプログラムを作成できます。

例を参照してください。

package delftstack;

public class Example {
  public static void main(String[] args) {
    int InputArray[] = {100, 100, 100, 200, 200, 220, 400, 400, 600, 700};
    int TemporaryArray[] = new int[InputArray.length];
    int RepeatCount = 0;

    for (int x = 1; x < InputArray.length; x++) {
      int element = InputArray[x];
      if (element == TemporaryArray[RepeatCount]) {
        continue;
      }

      for (int y = x + 1; y < InputArray.length; y++) {
        if (InputArray[y] == element) {
          TemporaryArray[RepeatCount++] = element;
          break;
        }
      }
    }

    System.out.println("The Total Repeated elements in the array: " + RepeatCount);
    System.out.println("The Repeated elements are : ");
    for (int x = 0; x < RepeatCount; x++) {
      System.out.print(TemporaryArray[x] + " ");
    }
  }
}

これで、このプログラムはソートされた配列に対して正常に機能します。 これは、より単純化されたバージョンです。

出力を参照してください。

The Total Repeated elements in the array: 3
The Repeated elements are :
100 200 400