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