Java >> Java tutorial >  >> Java

Tæl gentagne elementer i Array i Java

Sådan tælles gentagne elementer i et array i programmeringssproget Java. Hvis arrayet er sorteret, vil det være let at tælle gentagne elementer i et array sammenlignet med det usorterede array.

Eksempel1- et usorteret array ,
Matrix ={ 50, 20, 10, 40, 20, 10, 10, 60, 30, 70 };
Gentagne elementer i alt:2
Gentagne elementer er:20 10

Eksempel 2 - et sorteret array ,
Array ={ 10, 10, 10, 20, 20, 30, 40, 50, 60, 70 };
Gentagne elementer i alt:2
Gentagne elementer er:10 20

Java-program til at tælle gentagne elementer i et array

Nedenstående program er anvendeligt på ethvert array, som kan være et sorteret eller et usorteret array. Her vil vi oprette et midlertidigt array af lignende længde, krydse gennem det originale array, og hvis det gentagne element findes, så indsæt det i det midlertidige array. Hvis det næste element allerede er tilgængeligt i det midlertidige array, så spring det over. Proceduren til at løse dette problem,

a) Tag et array
b) Opret et nyt midlertidigt array (forudsat i værste fald, når der ikke er nogen duplikerede elementer)
c) Gå gennem det originale array
d) Hvis det aktuelle element er tilgængelig i det midlertidige array, så spring over at tjekke efter det aktuelle element.
e) Ellers sammenligne det nuværende element og alle næste elementer.
f) Hvis matchen fundet, så indsæt den i den midlertidige array, og stop sammenligne med de næste elementer.
g) Vis endelig det samlede antal gentagne elementer.

Java-program til at tælle gentagne elementer i en matrix

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]+" ");
      }      
   }
}

Output:-

I alt gentagne elementer:2
Gentagne elementer er:
20 10

Program kun for det sorterede array

Nedenstående program er kun anvendeligt for det sorterede array i stigende rækkefølge , ikke for den usorterede matrix eller sorteret i faldende rækkefølge. For at anvende på usorteret array skal du først sortere det givne array i stigende rækkefølge ved hjælp af Arrays.sort() metoden.

Java-program til at tælle gentagne elementer i sorteret array i 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] + " ");
      }
   }
}

Output:-

I alt gentagne elementer:2
Gentagne elementer er:
10 20


Java tag