Java >> Tutoriel Java >  >> Java

Compter les éléments répétés dans un tableau en Java

Comment compter les éléments répétés dans un tableau en langage de programmation Java. Si le tableau est trié, il sera facile de compter les éléments répétés dans un tableau par rapport au tableau non trié.

Exemple 1 :un tableau non trié ,
Array ={ 50, 20, 10, 40, 20, 10, 10, 60, 30, 70 } ;
Total des éléments répétés :2
Les éléments répétés sont :20 10

Exemple2 :un tableau trié ,
Array ={ 10, 10, 10, 20, 20, 30, 40, 50, 60, 70 } ;
Total des éléments répétés :2
Les éléments répétés sont :10 20

Programme Java pour compter les éléments répétés dans un tableau

Le programme ci-dessous est applicable sur n'importe quel tableau qui peut être un tableau trié ou non trié. Ici, nous allons créer un tableau temporaire de longueur similaire, parcourir le tableau d'origine et, si l'élément répété est trouvé, l'insérer dans le tableau temporaire. Si l'élément suivant est déjà disponible dans le tableau temporaire, ignorez-le. La procédure pour résoudre ce problème,

a) Prendre un tableau
b) Créer un nouveau tableau temporaire (en supposant, dans le pire des cas, qu'il n'y a pas d'éléments en double)
c) Parcourir le tableau d'origine
d) Si l'élément actuel est disponible dans le tableau temporaire, ignorez la vérification de l'élément actuel.
e) Sinon, comparez l'élément actuel et tous les éléments suivants.
f) Si la correspondance est trouvée, insérez-la dans le tableau temporaire et arrêtez en comparant avec les éléments suivants.
g) Enfin, affichez le nombre total d'éléments répétés.

Programme Java pour compter les éléments répétés dans un tableau

public class ArrayTest {

   public static void main(String[] args) {

      // original array
      int arr[] = { 50, 20, 10, 40, 20, 10, 10, 60, 30, 70};
      
      // create another array of similar size
      int temp[] = new int[arr.length];
      int count = 0;
      
      // traverse original array
      for(int i=0; i<arr.length; i++) {
         
         int element = arr[i];
         boolean flag = false;
         
         // check current element is already 
         // checked or not
         for(int j=0; j<count; j++) {
            if(temp[j] == element) {
               flag = true;
               break;
            }
         }
         
         // if already exist then don't check
         if(flag) {
            continue;
         }
         
         // check occurrence of element
         for(int j=i+1; j<arr.length; j++) {
            if(arr[j] == element) {
               temp[count++] = element;
               // found, therefore break
               break;
            }
         }
      }
      
      // display total repeated elements
      System.out.println("Total Repeated elements: " + count);
      // display repeated elements
      System.out.println("Repeated elements are: ");
      for (int i = 0; i < count; i++) {
         System.out.print(temp[i]+" ");
      }      
   }
}

Sortie :-

Total des éléments répétés :2
Les éléments répétés sont :
20 10

Programmer uniquement pour le tableau trié

Le programme ci-dessous est applicable uniquement pour le tableau trié par ordre croissant , pas pour le tableau non trié ou trié par ordre décroissant. Pour appliquer sur un tableau non trié, triez d'abord le tableau donné dans l'ordre croissant à l'aide de la méthode Arrays.sort().

Programme Java pour compter les éléments répétés dans un tableau trié en Java

public class ArrayTest {

   public static void main(String[] args) {

      // original array
      int arr[] = { 10, 10, 10, 20, 20, 30, 40, 50, 60, 70 };

      // create another array of similar size
      int temp[] = new int[arr.length];
      int count = 0;

      // traverse original array
      for (int i = 1; i < arr.length; i++) {
         
         // current element
         int element = arr[i];

         // if already exist then don't check
         if(element == temp[count]) {
            continue;
         } 
         
         // check occurrence of element
         for (int j = i + 1; j < arr.length; j++) {
            if (arr[j] == element) {
               temp[count++] = element;
               // found, therefore break
               break;
            }
         }
      }

      // display total repeated elements
      System.out.println("Total Repeated elements: " + count);

      // display repeated elements
      System.out.println("Repeated elements are: ");
      for (int i = 0; i < count; i++) {
         System.out.print(temp[i] + " ");
      }
   }
}

Sortie :-

Total des éléments répétés :2
Les éléments répétés sont :
10 20


Balise Java