在Java中获取数组中最频繁的元素


在Java中,数组是一种非原始数据类型,它存储相同数据类型的多个值。

根据题目要求,我们需要找出数组中出现次数最多的元素及其频率。

数组可以包含重复值。元素在数组中出现的次数称为该元素的频率。频率最高的元素就是数组中最频繁的元素。

让我们看看如何使用Java编程语言来实现。

一些示例

示例1

Suppose the original array is {1, 2, 3, 1, 5, 7, 5, 5, 9}.

执行查找数组中出现次数最多的元素的操作后,结果将是:

最频繁的元素是:5

示例2

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

执行查找数组中出现次数最多的元素的操作后,结果将是:

最频繁的元素是:7

示例3

Suppose the original array is {77, 22, 45, 22, 32, 77, 45, 77, 77}

执行查找数组中出现次数最多的元素的操作后,结果将是:

最频繁的元素是:77

算法

  • 步骤1 - 声明并初始化一个整型数组。

  • 步骤2 - 使用一个int变量 `max_count` 并将其初始化为0。再声明另一个int变量 `count` 来跟踪元素在数组中出现的次数。

  • 步骤3 - 检查条件 `count > max_count`。如果是,则将 `count` 的值赋给 `max_count`。

  • 步骤4 - 最后,打印具有 `max_count` 值的元素。

语法

要获取数组的长度(数组中的元素个数),可以使用数组的内置属性 `length`。

以下是其语法:

array.length

其中,'array' 指的是数组引用。

多种方法

我们提供了不同的方法来解决这个问题。

  • 使用静态初始化数组元素

  • 使用用户自定义方法

让我们逐一查看程序及其输出。

方法1:使用静态初始化数组元素

示例

在这种方法中,数组元素将在程序中初始化。然后,根据算法获取数组中最频繁的元素。

public class Main{

   //main method
   public static void main(String[] args){
   
      //Declare and initialize the array elements
       int[] arr = { 1, 2, 3, 1, 5, 7, 5, 5, 9 };
       
      //get the length of the array
      int n = arr.length;
      int max_count = 0;
      int maxfreq = 0;
       
      //Logic implementation
      for (int i = 0; i < n; i++){
         int count = 0;
         for (int j = 0; j < n; j++){
            if (arr[i] == arr[j]){
               count++;
            }
         }
        
         if (count > max_count){
            max_count = count;
            maxfreq = arr[i];
         }
      }
      //print the result
      System.out.print("Most frequent element is: " + maxfreq);
   }
}

输出

Most frequent element is: 5

方法2:使用用户自定义方法

示例

在这种方法中,数组元素将在程序中初始化。然后,通过将数组作为参数传递给用户自定义方法,并在方法内部根据算法获取数组中最频繁的元素。

public class Main{

   //main method
   public static void main(String[] args){
   
      //Declare and initialize the array elements
      int[] arr = { 1, 2, 3, 1, 5, 7, 5, 5, 9 };
      
      //get the length of the array
      int n = arr.length;
      
      //call the user defined method and print the result
      System.out.print("Most frequent element is: " + freq(arr, n));
   }
    
   //user defined method
   public static int freq(int[] arr, int n){
      int max_count = 0;
      int maxfreq = 0;
       
      //Logic implementation
      for (int i = 0; i < n; i++) {
         int count = 0;
         for (int j = 0; j < n; j++) {
            if (arr[i] == arr[j]) {
               count++;
            }
         }
       
         if (count > max_count) {
            max_count = count;
            maxfreq = arr[i];
         }
      }
       return maxfreq;
   }
}

输出

Most frequent element is: 5

在本文中,我们探讨了如何在Java中查找数组中最频繁的元素。

更新于:2023年1月5日

19K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告