仅使用绝对值对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然后你可以执行排序。