Java中将负数数组元素排在正数元素之前


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

根据题目要求,我们需要重新排列数组中的所有元素,使得负数元素排在正数元素之前。

如果一个数字大于0,则称为正数;如果小于0,则称为负数。

注意 − 数组必须是整数数组。

让我们通过这篇文章来了解如何使用Java编程语言实现这个功能。

一些示例

示例1

Suppose the original array is {1, 2, -3, -4, 5, -6, 7, -8, 9}.

重新排列数组后,结果将是:

-8 -6 -4 -3 1 2 5 7 9

示例2

Suppose the original array is {8, 2, -6, 4, -11, 15, 27, -8, -9}

重新排列数组后,结果将是:

-11 -9 -8 -6 2 4 8 15 27

示例3

Suppose the original array is {12, 21, -31, -14, 56, 16, 17, -18, 9}

重新排列数组后,结果将是:

-31 -18 -14 9 12 16 17 21 56

算法

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

  • 步骤2 − 将数组按升序排序。

  • 步骤3 − 初始化循环以打印数组元素。

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

语法

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

以下是它的语法:

array.length

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

多种方法

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

  • 使用静态数组初始化。

  • 使用用户自定义方法。

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

方法1:使用静态数组初始化

示例

在这种方法中,数组元素将在程序中初始化。然后,根据算法,重新排列数组中的所有元素,使得负数元素排在正数元素之前。

import java.util.*;
public class Main {
   //main method
   public static void main(String[] args){
   
      //Declare and initialize the array elements
      int[] arr = { 12, 21, -31, -14, 56, 16, 17, -18, 9 };
      System.out.println("Original array: \n"+Arrays.toString(arr));
      
      //sorting array in ascending order
      Arrays.sort(arr);
      System.out.println("Updated array: ");
      
      //for each loop to print array elements
      for (int e : arr)
         System.out.print(e + " ");
   }
}

输出

Original array: 
[12, 21, -31, -14, 56, 16, 17, -18, 9]
Updated array: 
-31 -18 -14 9 12 16 17 21 56

方法2:使用用户自定义方法

示例

在这种方法中,数组元素将在程序中初始化。然后,调用一个用户自定义方法,并将数组作为参数传递给该方法。在方法内部,根据算法,重新排列数组中的所有元素,使得负数元素排在正数元素之前。

import java.util.*;
public class Main{
   //main method
   public static void main(String[] args){
   
      //Declare and initialize the array elements
      int[] arr = { 8, 2, -6, 4, -11, 15, 27, -8, -9 };
      System.out.println("Original array: \n"+Arrays.toString(arr));
      
      //call a user defined method 
      negative_first(arr);
   }
   //user defined method 
   public static void negative_first(int[] arr){
   
      //sorting array in ascending order
      Arrays.sort(arr);
      System.out.println("Updated array: ");
      
      //for loop to print array elements
      for (int e : arr)
         System.out.print(e + " ");
   }
}

输出

Original array: 
[8, 2, -6, 4, -11, 15, 27, -8, -9]
Updated array: 
-11 -9 -8 -6 2 4 8 15 27

在这篇文章中,我们探讨了如何使用Java编程语言重新排列数组中的所有元素,使得负数元素排在正数元素之前。

更新于:2023年1月5日

浏览量:903

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.