Java 找到数组中正数、负数和零元素的个数

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中找到数组中每个元素的频率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程