Java 查找数组中重复元素及其频率

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中,我们有一个内建的sort()方法,位于java.util.Arrays类中,用于对数组进行排序。

下面是其语法:

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中找到数组中重复的元素以及它们的频率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程