这个与TreeSet的remove算法有关,你可以看一下TreeSet的源码,其内部是由TreeMap实现的。在remove时会先从5开始比对,如果比5小就与20(原值是-3)比较,发现比20还小,而这时20的左边已经没有元素了,所以就移除失败。加入0元素后,remove -2时也先与5比较,但发现比5小后下一比较的是-2,发现相等后就移除并返回。为何会这样肯定也是由其排序查找的算法决定的,而这算法是怎样的我也没有研究过,只知道结果是这样的...