有一个Employee类,想按其中的成员变量salary排序,重写了compareTo()方法,我现在不明白的问题是:如果这个方法返回的是-1,collections.sort()就会交换这两个对象的位置,如果是1 或者 0就不变吗?
麻烦给解释一下,不太明白。

解决方案 »

  1.   

    compareTo() 根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。 也就是说-1 代表第一个参数小于第二个参数,0代表两数相等,1代表第一个参数大于第二个参数。而collections.sort() 默认的是按自然顺序来排序,也就是根据元素的自然顺序 对指定列表按升序进行排序。,所以当compareTo()返回-1和0时,collections.sort()就不会交换这两个对象的位置,当compareTo()返回1时,前面的元素比后面的元素大,此时就要交换两个元素的位置。