Comparable接口,与vector重写实现排序二维数组

1.Comparable接口

源码:

public interface Comparable<T> {
     
    public int compareTo(T o);
}

一维数组实现

  • 返回值等于0:o1=o2
  • 返回值>0则o1>o2
  • 返回值<0则o1

比较时:

  • o1在前是升序,o2在前是降序
Vector<Integer> comPare = new Vector<>();
        comPare.add(3);
        comPare.add(1);
        comPare.add(5);
        comPare.sort(new Comparator<Integer>() {
     
            @Override
            public int compare(Integer o1, Integer o2) {
     
            	o1在前是升序,o2在前是降序
                return o1-o2;
            }
        });

二维数组的实现

对vector的二维数组进行排序,

  • 第2个元素相同,则按第1个元素排升序;
  • 否则只按第2个元素排降序。
Vector<Vector<Integer>> vector = new Vector<>();
vector.sort(new Comparator<Vector<Integer>>() {
     
	 @Override
	 public int compare(Vector<Integer> o1, Vector<Integer> o2) {
     
	     if (o2.get(1)==o1.get(1))
	         return o1.get(0)-o2.get(0);
	     return o2.get(1)-o1.get(1);
	 }
});

你可能感兴趣的:(java基础面试,数据结构)