} while (t != null);
}
Entry
if (cmp < 0)
parent.left = e;
else
fixAfterInsertion(e); //根据红黑树规则添加节点!
size++;
modCount++;
return null;
}
上面的源码,我加了自己的一点点小注释!可以看出来,TreeSet和TreeMap判断其中元素是否重复是根据对象的compareTo()方法的返回值。返回值>0表示新来节点大于原来节点,并存储与该节点右枝!返回值<0表示新来节点小于原来节点,并存储与该节点左枝(当然还会和左孩子节点比较)!返回值=0表示两节点重复。