关于Java里的TreeSet判断重复元素。

关于Java里的TreeSet判断重复元素。,第1张

set 维护的顺序(无论是否提供了显式比较器)必须与 equals 一致。(关于与 equals 一致 的精确定义,请参阅 Comparable 或 Comparator。)这是因为 Set 接口是按照 equals *** 作定义的,但 TreeSet 实例使用它的 compareTo(或 compare)方法对所有元素进行比较,因此从 set 的观点来看,此方法认为相等的两个元素就是相等的。

好吧,我承认复制了API。不过上面说得很清楚,compareTo()返回0才是被认为两个元素是相等吧。

对于一般的 List 而言,是有序、可重复

而 TreeSet 是有序、不可重复

且 TreeSet 和 List 的有序不是一个概念。List 的有序,指保持元素的添加顺序。而 TreeSet 的有序,是指会调用 Comparable 接口的 compareTo 方法来比较元素大小进行排序,元素可以通过实现 Comparable 接口,重写 compareTo 方法来实现自定义的排序。

比如Integer 实现了Comparable 接口,如果按以下顺序添加,会按数值大小进行排序,而不是按元素添加的顺序:

treeSetadd(1); treeSetadd(3); treeSetadd(2);

那么在遍历 treeSet 的时候,会发现它的顺序是 123,而不是 132。

而且 TreeSet 不能像 List 那样能通过索引进行 *** 作。没有 get(i) 之类的方法。

以上就是关于关于Java里的TreeSet判断重复元素。全部的内容,包括:关于Java里的TreeSet判断重复元素。、TreeSet是集合,但还有序;那不就在功能上和List一样了吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9778787.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存