在 Java 中将所有零移动到数组末尾

javaobject oriented programmingprogramming更新于 2024/11/27 19:24:17

在 Java 中,数组是一个对象。它是一种非原始数据类型,用于存储类似数据类型的值。

根据问题陈述,我们必须将所有零移动到数组末尾,即如果数组中包含 n 个零,则所有 n 个零都将被推回到数组中。

让我们探索文章,看看如何使用 Java 编程语言来实现这一点。

向您展示一些实例

实例 1

假设原始数组为 {128, 0, 99, 67, 50, 0, 29, 7, 0

将所有零移动到数组末尾后,结果将是:

将所有零移动到数组末尾后的数组元素:

128 99 67 50 29 7 0 0 0

实例-2

假设原始数组为 {23, 9, 6, 4, 0, 0, 21, 7, 0, 6, 0, 9

将所有零移动到数组末尾后,结果将是:

将所有零移动到数组末尾后数组的元素:

23 9 6 4 21 7 6 9 0 0 0 0

实例-3

假设原始数组为 {3, 9, 5, 1, 0, 0, 11, 6, 0, 9

将所有零移动到数组末尾后,结果将是:

将所有零移动到数组末尾后数组的元素数组:

3 9 5 1 11 6 9 0 0 0

算法

算法-1(使用排序)

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

  • 步骤 2 - 实现多种方法的逻辑。

  • 步骤 3 - 按降序对数组进行排序,因此最后一个位置将为零。

  • 步骤 4 - 打印数组的元素。

算法-2(通过手动迭代和替换)

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

  • 步骤 2 - 实现多种方法的逻辑。

  • 步骤 3 - 将所有非零元素推入数组左侧,最后保留零元素。

  • 步骤 4 - 打印数组的元素。

语法

要获取数组的长度(该数组中的元素数),数组有一个内置属性,即 length

下面引用它的语法 -

array.length

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

多种方法

我们提供了不同方法的解决方案。

  • 使用排序

  • 通过手动迭代和替换

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

方法 1:使用排序

在此方法中,数组元素将在程序中初始化。然后根据算法按降序对数组进行排序,因此最后一个位置将为零。

示例

import java.util.*;
public class Main {
   public static void main(String[] args){
      
        //声明并初始化数组元素
        int array[] = {128, 0, 99, 67, 50, 0, 29, 7, 0};
        
        //获取数组的长度
        int n = array.length;
        
        //调用用户定义函数
        func(array, n);
   }
   
   //用户定义的方法
   public static void func(int array[], int n) {
   
        //对数组元素进行排序
        Arrays.sort(array);
        System.out.println("将所有零移到数组末尾后的数组元素:");
        
        //使用 for 循环打印数组
      	for (int i = n-1; i >= 0; i--) {
         System.out.print(array[i] + " ");
      	}
   }
}

输出

将所有零移至数组末尾后的数组元素:
128 99 67 50 29 7 0 0 0

方法 2:通过手动迭代和替换

在此方法中,数组元素将在程序中初始化。然后根据算法将所有非零元素推入数组左侧,将零元素留在最后。

示例

import java.io.*;
public class Main {
   public static void main (String[] args){
       
        //声明并初始化数组元素
        int arr[] = {3, 9, 5, 1, 0, 0, 11, 6, 0, 9};
        
        //获取数组的长度
        int n = arr.length;
              
      	//调用用户定义的方法
      	func(arr, n);
   }
   
   //用户定义的方法
   static void func(int arr[], int n) {
        // 非零元素的数量
        int count = 0;
        
        //将非零元素移到循环左侧
        for (int i = 0; i < n; i++)
        if (arr[i] != 0)
        arr[count++] = arr[i];
        
        //将零添加到末尾
        while (count < n)
        arr[count++] = 0;
        
        //打印结果
        System.out.println("将所有零移动到数组末尾后数组元素数: ");
        for (int i = 0; i < n; i++)
        System.out.print(arr[i] + " ");
   }
}

输出

将所有零移至数组末尾后数组元素:
3 9 5 1 11 6 9 0 0 0

在本文中,我们探讨了如何使用 Java 编程语言将所有零移至数组末尾。


相关文章


有用资源