二维数组排序
int a[][] ={{1,2},{4,3},{2,1},{2,-1}}; Arrays.sort(a,new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { //如果第一个数字相等,比价第二个 if(o1[0]-o2[0]==0) return o1[1]-o2[1]; return o1[0]-o2[0]; } });
- o1[0]-o2[0],减,升学排序
- o2[0]-o1[0],减,降序排序
对象数组排序
- 对象需要添加接口 Comparable
- 重写了Comparable的CompareTo方法
- 可以比较对象中初始化的元素,必须返回数字
public int compareTo(Hero o) { //如果有多个再进行额外的判断 return this.age- o.age; }
集合排序
- List item
List<Integer> list=new ArrayList<Integer>(); list.add(2); list.add(1); list.add(4); list.add(3); Collections.sort(list,new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { // TODO Auto-generated method stub return o2-o1; } }); System.out.println(list);