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