在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+浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告