对零,负数和正数的数组进行排序

Joh*_*reg 1 java arrays sorting

我有一个Java数组

int num[] = {5, -3, 0, -18, 1, 2, 0};
Run Code Online (Sandbox Code Playgroud)

我想让它看起来像这些

{-3, -18, 0, 0, 5, 1, 2}
Run Code Online (Sandbox Code Playgroud)

我现在拥有的是这个

for (int i=0; i<num.length;i++)
    {
        for (int j=1; j<num.length-1;j++)
        {
            if (num[j]<0)
            {
                temp=num[j];
                c=num[j-1];
                num[j-1]=temp;
                num[j]=c;
            } 
        }  
    }
Run Code Online (Sandbox Code Playgroud)

但这种只是负数,我找不到解决方案如何排序零.你能帮我吗?

Cin*_*nam 5

您可以使用Arrays.sort()自定义比较器,它将使用等号保留数字的顺序:

Integer[] num = {5, -3, 0, -18, 1, 2, 0};
Arrays.sort(num, (a, b) -> Integer.signum(a) - Integer.signum(b));
System.out.println(Arrays.toString(num)); // [-3, -18, 0, 0, 5, 1, 2]
Run Code Online (Sandbox Code Playgroud)

编辑:因为事实证明OP只是想要一个普通的排序,那就是

Arrays.sort(num);
Run Code Online (Sandbox Code Playgroud)