Java 把所有的零移到数组的末端
在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步 打印数组中的元素。
语法
要获得一个数组的长度(数组中的元素数),数组有一个内置的属性,即长度
下面是它的语法 â€
array.length
其中,”array “指的是数组引用。
多种方法
我们已经提供了不同方法的解决方案。
- 通过使用排序
-
通过手动迭代和替换
让我们来看看这个程序和它的输出,一个接一个。
方法1:通过使用排序
在这种方法中,数组元素将在程序中被初始化。然后按照算法对数组进行降序排序,因此零将被放在最后的位置。
例子
import java.util.*;
public class Main {
public static void main(String[] args){
//Declare and initialize the array elements
int array[] = {128, 0, 99, 67, 50, 0, 29, 7, 0};
//getting length of an array
int n = array.length;
//calling user defined function
func(array, n);
}
//user defined method
public static void func(int array[], int n) {
//sorting the array elements
Arrays.sort(array);
System.out.println("Elements of array after moving all the zeros to the end of array: ");
//prints array using the for loop
for (int i = n-1; i >= 0; i--) {
System.out.print(array[i] + " ");
}
}
}
输出
Elements of array after moving all the zeros to the end of array:
128 99 67 50 29 7 0 0 0
方法-2:通过手动迭代和替换
在这种方法中,数组元素将在程序中被初始化。然后按照算法将所有的非零元素推到数组的左边,最后剩下零元素。
例子
import java.io.*;
public class Main {
public static void main (String[] args){
//Declare and initialize the array elements
int arr[] = {3, 9, 5, 1, 0, 0, 11, 6, 0, 9};
//getting length of an array
int n = arr.length;
//calling user defined method
func(arr, n);
}
//user defined method
static void func(int arr[], int n) {
// Count of non-zero elements
int count = 0;
//shifting non zero element to the left of the loop
for (int i = 0; i < n; i++)
if (arr[i] != 0)
arr[count++] = arr[i];
//adding the zeros to the end
while (count < n)
arr[count++] = 0;
//printing the result
System.out.println("Elements of array after moving all the zeros to the end of array: ");
for (int i = 0; i < n; i++)
System.out.print(arr[i] + " ");
}
}
输出
Elements of array after moving all the zeros to the end of array:
3 9 5 1 11 6 9 0 0 0
在这篇文章中,我们探讨了如何通过使用Java编程语言将所有的零移到数组的末尾。