1、回顾以前数据结构的知识,所有排序算法的基本操作是什么?这个基本操作和Comparable接口又有什么关系?这个基本操作得到的结果有哪几种?
比较(comparable)是所有排序算法的基本操作,
2、详细描述:为什么某个类实现了Comparable接口,就可以对该类的集合(如数组、ArrayList)使用Arrays.sort进行排序?Comparator接口相较于Comparable接口有什么优势?
为什么:因为Comparable接口内部含有compareTo方法(public int compareTo(Object obj);),该方法:
返回 0:表示 this == obj ;
返回正数:表示 this > obj ;
返回负数:表示 this < obj ;
从而确定该类对象的排序方式;
优势:用Comparator 不需要修改源代码, 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了, 并且在Comparator 里面用户可以自己实现复杂的可以通用的逻辑,使其可以匹配一些比较简单的对象,那样就可以节省很多重复劳动了。
3、你觉得为什么有了抽象类还需要接口?接口相较于继承有什么不同,体现了什么关系?
为什么:
1:接口是为Java实现多继承而存在的
2:抽象类中可以存在非抽象的方法,可接口不能存在非抽象的方法,并且接口里面的方法只是一个声明,必须用 public abstract来修饰,没有具体的实现
3:抽象方法中的成员变量可以被不同的修饰符修饰,而接口中的成员变量默认都是静态常量
4:抽象类是对对象进行的抽象,而接口是一种行为规范。
不同:继承不需要重载所有方法,接口必须实现所有方法。
关系:继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。接口是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。