最近写了这个 HashMap , 那么接下来简单讲讲 TreeMap ,LinkedHashMap ,ConcurrentHashMap
必备知识点
一. Comparable
, Comparator
这两个有什么不同?
可以看到一个是 java.lang 包的,一个是 util 包的。
代码如下,很明显, Comparable
属于 内部比较器, 而 Comparator
属于 外部比较器 。
外部比较器的好处 是我们可以有很多这种比较器,可以按排序的要求去选择 ,便于解耦。
而内部比较器也比较简单,只要实现了该 Comparable
接口就可以进行比较了。
class B implements Comparator<Integer>{
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
}
class C implements Comparable<Integer>{
private final int num;
public C(int num){
this.num=num;
}
@Override
public int compareTo(Integer o) {
return this.num-o;
}
}
接着让我们来看看这个 TreeMap~