1.对比Arraylist (插入顺序)和 LinkedList(插入顺序) 特性:
ArrayList(末尾附近不包括末尾添加时速度快18:901)删除和添加元素速度比较快。
LinkedList(从开头添加元素快6:4484)删除和添加元素速度快。
2.set 和 list 的区别:
①、set是无序的,list是有序的。
②、set中数组的元素是不可重复的。list可重复。
3. Comparable 和 Comparator 的区别 ( 排序 ):
Comparable :一个实现了comparable 接口的对象的实例可以被用于和相同对象的不同实例作比较,他本身实现java.lang.comparable.
Comparator:一个实现了comparator接口对象能够对比不同的对象,他不能用于同一个类的不同实例的对比,但是可以用于其他类的实例作比较必须实java.lang.comparator.
4.CompareTo 和 Compare ( ) 方法:
①、compareTo(Object o)方法是java.lang.Comparable接口中的方法,当需要对某个类的对象进行排序时,该类需要实现Comparable接口的,必须重写public int compareTo(T o)方法,比如MapReduce中Map函数和Reduce函数处理的,其中需要根据key对键值对进行排序,所以,key实现了WritableComparable接口,实现这个接口可同时用于序列化和反序列化。
WritableComparable接口(用于序列化和反序列化)是Writable接口和Comparable接口的组合;②、compare(Object o1,Object o2)方法是java.util.Comparator接口的方法,它实际上用的是待比较对象的compareTo(Object o)方法。