数组的排序方式有很多。
排序,必须选择一个排序标准,可以按照元素的值(整型数组),或者元素的某个属性值(元素为对象时)。
Arrays工具类,位于java.util包,提供了sort方法。支持自定义比较器,实现升序、降序排列等。
多维数组,可以看作元素是数组的集合。同样的思想,按照元素的某一个属性,比如元素的某一列值(二维数组)排序。
import java.util.Arrays; |
写这个是因为,对compare方法的参数顺序有点懵。所以写下来,理一理。
o1与o2只是参数名称。
(o1,o2)-> o1-o2 ,这种形式,代表升序。
o1代表当前元素,o2是前一个元素。返回o1-o2,默认为正值,表示o1大于o2,即当前元素大于前一个元素。是对数组进行升序排列。
测试过程中,发现对int[ ] 类型的一维数组,不能使用传入自定义的比较器来进行降序排列。
int[] nums = new int[]{2, 1, 3, 4, 6, 2}; |
上述的写法会报错(可检查)。操作符-不能被应用到T
,即说明自定义比较器中两个用于比较的元素必须是对象,或者说是引用类型。
改为如下写法,则编译运行正常。
Integer[] nums = new Integer[]{2, 1, 3, 4, 6, 2}; |