本帖最后由 陈虹旭 于 2012-10-22 08:53 编辑
TreeSet的两种排序方式:
第一种:传入的元素本身就具备比较性的情况,若传入实体对象,就要让实体对象的类实现Comparable接口,并覆盖接口的compareTo()方法
第二种:传入的元素本身不具备比较性,或者比较的属性并不是自己的需求,这时没有办法修改元素类中的原有内容,就要定义一个比较器,方法是定义一个比较器类,让这个类实现Comparator接口,并覆盖接口中的compare()方法,定义自己需求的比较内容,然后将比较器传给TreeSet集合,这样集合本身就会具备比较性了
这两种方式都适用于TreeSet集合,底层会直接调用compareTo()或compare(),这个于equals()是没有关系的,equal()一般用于数据类型本身就具有的比较方式
在HashSet中主要用到了这个方法,底层会直接调用hashCode()和equals()
新人,若有理解不对的地方望谅解,希望对你有帮助! |