Java 找到数组中正数、负数和零元素的个数
在Java中,数组是一种非原始数据类型,它存储相同数据类型的值。
根据问题描述,我们需要找出每个元素的频率,即数组中每个元素出现的次数。
让我们看看如何使用Java编程语言来实现它。
为您展示一些实例
实例-1
Suppose the original array is {21, 10, 26, 21, 10, 33, 33, 20, 10, 21}
找到数组中每个元素的频率后,结果将是−
Element | Frequency
------------------------
21 | 3
10 | 3
26 | 1
33 | 2
20 | 1
实例2
Suppose the original array is {2, 3 ,2, 3, 9, 5, 3, 2, 9, 1}
在找到数组中每个元素的频率后,结果将为−
Element | Frequency
-----------------------
2 | 3
3 | 3
9 | 2
5 | 1
1 | 1
步骤
- 步骤1 - 声明并初始化一个整数数组。
-
步骤2 - 通过for循环遍历数组元素并计算频率。
-
步骤3 - 如果已经处理过元素,则跳过该元素,并使用另一个for循环计算频率。
-
步骤4 - 打印所需结果。
语法
要获取数组的长度(即数组中的元素数量),数组有一个内置属性,即 length 。
以下是其语法:
array.length
其中, ‘array’指的是数组引用。
多种方法
我们提供了不同的方法来解决问题。
- 通过使用数组元素的静态初始化
-
通过使用用户定义的方法
让我们逐个查看程序及其输出。
方法1:通过使用数组元素的静态初始化
示例
在这种方法中,数组元素将在程序中初始化。然后按照算法遍历数组元素,并使用for循环计算频率,并使用另一个for循环计算频率。
import java.util.Arrays;
public class Main{
//main method
public static void main(String args[]){
//Declare and initialize the array elements
int arr[] = new int[]{ 21, 10, 26, 21, 10, 33, 33, 20, 10, 21 };
int n = arr.length;
boolean vis[] = new boolean[n];
Arrays.fill(vis, false);
System.out.println("---------------------------------------");
System.out.println(" Element | Frequency");
System.out.println("---------------------------------------");
// Traverse through array elements and count frequencies
for (int i = 0; i < n; i++){
// Skip this element if already processed
if (vis[i] == true)
continue;
//to Count frequency
int count = 1;
for (int j = i + 1; j < n; j++){
if (arr[i] == arr[j]){
vis[j] = true;
count++;
}
}
System.out.println(arr[i] + " | " + count);
}
System.out.println("----------------------------------------");
}
}
输出
---------------------------------------
Element | Frequency
---------------------------------------
21 | 3
10 | 3
26 | 1
33 | 2
20 | 1
----------------------------------------
方法2:使用用户自定义方法
示例
在这种方法中,程序将初始化数组元素。然后调用一个用户定义的方法,将数组作为参数传递,并在方法内根据算法遍历数组元素并使用for循环计算频率。使用另一个for循环计算频率。
import java.util.Arrays;
public class Main{
//user defined method
public static void frequency(int arr[], int n){
boolean vis[] = new boolean[n];
Arrays.fill(vis, false);
System.out.println("---------------------------------------");
System.out.println(" Element | Frequency");
System.out.println("---------------------------------------");
// Traverse through array elements and count frequencies
for (int i = 0; i < n; i++) {
// Skip this element if already processed
if (vis[i] == true)
continue;
//to Count frequency
int count = 1;
for (int j = i + 1; j < n; j++) {
if (arr[i] == arr[j]) {
vis[j] = true;
count++;
}
}
System.out.println(arr[i] + " | " + count);
}
System.out.println("----------------------------------------");
}
//main method
public static void main(String args[]){
//Declare and initialize the array elements
int arr[] = new int[]{ 88, 22, 88, 22, 15, 32, 22, 32, 89};
int number = arr.length;
//call a user defined method
frequency(arr, number);
}
}
输出
---------------------------------------
Element | Frequency
---------------------------------------
88 | 2
22 | 3
15 | 1
32 | 2
89 | 1
----------------------------------------
在本篇文章中,我们探讨了如何在Java中找到数组中每个元素的频率。