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)
但这种只是负数,我找不到解决方案如何排序零.你能帮我吗?
您可以使用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)