仅使用绝对值对Array进行排序并显示实际值

打印绝对排序的数组。 请参阅示例输出以获得说明。

输入:

9 -2 10 3 -5 34 -22 7 

我想要输出:

 -2 3 -5 7 9 10 -22 34 

我试过Arrays.sort(a[]);

请帮帮我:

谢谢

使用Java 8,您可以使用lambda和Math.abs,如下所示:

 Integer[] array = {9,-2,10,3,-5,34,-22,7}; Arrays.sort(array, (a,b) -> (Integer.compare( Math.abs(a), Math.abs(b)))); Stream.of(array).forEach(a -> System.out.println(a)); 

感谢4castle的建议。 或者使用比较器

 Arrays.sort(array, Comparator.comparingInt(Math::abs)); 

一个简洁的方法是

 Arrays.sort(array, Comparator.comparingInt(Math::abs)); 

例。

输入:[9,-2,10,3,-5,34,-22,7]

输出:[ – 2,3,-5,7,9,10,-22,34]

  Integer[] array = {9,-2,10,3,-5,34,-22,7}; Arrays.sort(array, Comparator.comparingInt(Math::abs)); System.out.println(Arrays.toString(array)); 

使用sort和其他比较器:

 Arrays.sort(a, new AbsComparator()); 

比较器本身可能如下所示:

 class AbsComparator extends Comparator() { @Override public int compare(Integer i1, Integer i2) { return Math.abs(i1) < Math.abs(i2); } } 

您可以获得数字的绝对值,然后您可以进行排序

在Java中

double f = Math.abs(-2); 给你值2然后你可以执行排序。