当我打开TreeSet类的源代码时,有以下代码:
public boolean contains(Object o) {
return m.containsKey(o);
}
m是一个NavigableMap,它是一个接口。那么实施在哪里?它绝对不在TreeSet本身。
答案 0 :(得分:1)
来自TreeSet
的来源:
TreeSet(NavigableMap<E,Object> m) {
this.m = m;
}
public TreeSet() {
this(new TreeMap<E,Object>());
}
所以m
应该是TreeMap
(如果同一个包中的另一个类调用该构造函数,则可能是NavigableMap
的另一个实现。)