黑马程序员技术交流社区

标题: TreeSet排序的两种方式 [打印本页]

作者: yanglfree    时间: 2013-9-24 08:50
标题: TreeSet排序的两种方式
本帖最后由 黄兴旺 于 2013-9-24 19:58 编辑

第二种方式:当元素自身不具备比较性,或者具备的比较性不是所需的,这时需要让集合自身具备比较性。

当元素自身不具备比较性时,用第二种方式
那么用第二种方式的时候,到底还需不需要元素自身具备比较性?还是只需要让集合自身具备比较性即可?

从编程的结果来看,元素还是需要实现Comparable接口的,但是还是需要来确认一下。

作者: 陈洋    时间: 2013-9-24 10:39
先让元素自身带有比较性,然后根据需求,传入比较器,对元素进行重新比较排序。
作者: jìng╮煜    时间: 2013-9-24 12:16
那.这么跟你说啦.
每个集合都有自己的比较方式,如果传入的是一个String或者Integer当然很方便就能看出来他们各自的比较方式.
但是如果是个对象,那么就不好比较了.你说的需要现Comparable接口其实是给集合用的,集合会调用对象里被复写的comparto方法.来看返回的值是大还是小.


(有误请指点....)
作者: code_geass    时间: 2013-9-24 13:50
当然需要。这是万全的准备,你的对象具备比较性,算是默认排序,当你需要它按照其他规律排序的时候再传个个比较器进去就行了。
作者: 杨修    时间: 2013-9-24 15:24
当TreeSet集合中,当元素自身不具备比较性,或者具备的比较性不是所需的,这时需要让集合自身具备比较性。

当元素自身具备了比较性,并且集合自身也具备了比较性,这时候就以比较器的比较性为准,此时元素自身可以不实现Comparable接口。
当元素自身不具备比较性,此时集合自身就必须实现Comparator接口。也就是两种比较方式至少需要有一种,如果两种都存在,就以集合自身比较器为准。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2