在Java中查詢陣列中的重複元素及其頻率


在Java中,陣列是一種非基本資料型別,它儲存相同資料型別的值。

根據題目要求,我們必須檢測陣列中重複的元素並列印其頻率。

陣列也可以包含重複的值。因此,元素在陣列中出現的次數稱為該元素在陣列中的頻率。

讓我們看看如何使用Java程式語言來實現。

展示一些示例

示例1

Suppose the original array is {2, 3, 5, 4, 3, 1, 3, 2, 1, 2, 2}

執行查詢重複元素頻率的陣列操作後,我們將列印“重複的陣列元素”以及它重複的“次數” -

1 --> 2
2 --> 4
3 --> 3

示例2

Suppose the original array is {2, 3, 5, 4, 3, 1, 3, 2, 1};

執行查詢重複元素頻率的陣列操作後,我們將列印“重複的陣列元素”以及它重複的“次數” -

1 --> 2
2 --> 2
3 --> 3

示例3

Suppose the original array is {5, 7, 5, 2, 3, 5, 4, 7}

執行查詢重複元素頻率的陣列操作後,我們將列印“重複的陣列元素”以及它重複的“次數” -

5 --> 3
7 --> 2

演算法

  • 步驟1 - 宣告並初始化一個整數陣列。

  • 步驟2 - 對陣列元素進行排序。

  • 步驟3 - 初始化變數。

  • 步驟4 - 應用for迴圈並將頻率設定為1。

  • 步驟5 - 應用另一個for迴圈並將陣列元素與前一個for迴圈進行匹配。

  • 步驟6 - 列印陣列元素及其頻率。

語法

要獲取陣列的長度(陣列中的元素個數),陣列有一個內建屬性,即length

以下是其語法:

array.length

其中“array”指的是陣列引用。

要在Java中對陣列進行排序,我們在java.util.Arrays類中使用內建的sort()方法。

以下是其語法:

Arrays.sort();

多種方法

我們提供了不同的方法來解決這個問題。

  • 使用陣列元素的靜態初始化。

  • 使用使用者定義的方法。

讓我們逐一檢視程式及其輸出。

方法1:使用陣列元素的靜態初始化

示例

在這種方法中,陣列元素將在程式中初始化。然後,根據演算法查詢重複的陣列元素及其頻率。

import java.util.*;
public class Main{

   //main method
   public static void main(String[] args) {
   
      //Declare and initialize the array elements
      int[] array = { 2, 3, 5, 4, 3, 1, 3, 2, 1, };
      
      //sorting an array
      Arrays.sort(array);
      
      //declaring the variables
      int i,j,frequency;
      System.out.println("These elements are repeated along with its frequency-");
      
      //loop for logic implementation
      for(i=0; i<array.length; i++){
         frequency = 1;
         for(j=i+1; j<array.length; j++){
            if(array[j] == array[i]){
               frequency++;
            } else {
               break;
            }
         }
         i=j-1;
         if(frequency > 1){
         
            //printing the output
            System.out.println(array[i] + " --> " + frequency);
         }
      }
   }
   
}

輸出

These elements are repeated along with its frequency-
1 --> 2
2 --> 2
3 --> 3

方法2:使用使用者定義的方法

示例

在這種方法中,陣列元素將在程式中初始化。然後,透過將陣列作為引數呼叫使用者定義的方法,並在方法內部根據演算法查詢重複的陣列元素及其頻率。

import java.util.*;
public class Main{

   //main method
   public static void main(String[] args) {
   
      //Declare and initialize the array elements
      int[] array = { 2, 3, 5, 4, 3, 1, 3, 2, 1, 9, 2, 9, 9, 9, 2 };
      
      //sorting an array
      Arrays.sort(array);
      System.out.println("These elements are repeated along with its frequency-");
      
      //call a user defined method
      duplicate(array);
   }
   
   //user defined method
   static void duplicate(int[] array){
   
      //declared the variables
      int i,j,frequency;
      
      //loop for logic implementation
      for(i=0; i<array.length; i++){
         frequency = 1;
         for(j=i+1; j<array.length; j++){
            if(array[j] == array[i]){
               frequency++;
            } else {
               break;
            }
         }
         i=j-1;
         if(frequency > 1){
            //printing the output
            System.out.println(array[i] + " --> " + frequency);
         }
      }
   }
   
}

輸出

These elements are repeated along with its frequency-
1 --> 2
2 --> 4
3 --> 3
9 --> 4

在本文中,我們探討了如何在Java中查詢陣列中重複元素及其頻率。

更新於:2023年1月5日

19K+瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.