比较方法如何比较3元素数组?

时间:2019-05-17 21:03:01

标签: java

以下是困扰我考试的一个问题

以下Java程序片段将产生什么输出?

class CardComparator implements Comparator<Integer>{
public int compare(Integer x, Integer y) {
return y*y-x*x;
)
)
Integer[] myArray = new Integer[] {3,-2,1)
Arrays. sort(myArray, new CardComparator( ) ) ;
System. out . println (Arrays . toString(myArray) ) ;

比较方法如何比较3元素数组?

为什么答案是1,-2,3?

1 个答案:

答案 0 :(得分:0)

问:compare如何比较3元素数组?

A:不会!它只是比较给定的任何两个整数。

Array.sort通过使用给定compare的{​​{1}}方法比较整数对,并将数组Comparator编程的方式确定,将数组按排序顺序哪个整数在其他哪个整数之前或之后排序。

这种特殊的compare方法的编写方式基本上会忽略要比较的两个整数的代数符号,并比较它们的绝对值。为什么?它减去两个数字的平方,任何整数的平方始终是正数。