返回信息流为什么可以用new ArrayList<String>()作为TreeSet<String>的初始化参数
这是一条镜像帖。来源:北邮人论坛 / java / #23678同步于 2012/10/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
TreeSet<String> woe = new TreeSet<String>(new ArrayList<Str
kaka1992
2012/10/15镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
public TreeSet(Collection<? extends E> c) {
this();
addAll(c);
}
难道是因为这个构造函数,ArrayList继承了它。
public boolean addAll(Collection<? extends E> c) {
// Use linear-time version if applicable
if (m.size()==0 && c.size() > 0 &&
c instanceof SortedSet &&
m instanceof TreeMap) {
SortedSet<? extends E> set = (SortedSet<? extends E>) c;
TreeMap<E,Object> map = (TreeMap<E, Object>) m;
Comparator<? super E> cc = (Comparator<? super E>) set.comparator();
Comparator<? super E> mc = map.comparator();
if (cc==mc || (cc != null && cc.equals(mc))) {
map.addAllForTreeSet(set, PRESENT);
return true;
}
}
return super.addAll(c);
}
=.=你自己回答了。。。List、Set、Map神马都是继承自Collection的。
【 在 kaka1992 的大作中提到: 】
: public TreeSet(Collection<? extends E> c) {
: this();
: addAll(c);
: ...................