java类集--排序及重复元素说明

来源:互联网 发布:广告设计软件培训班 编辑:程序博客网 时间:2024/06/05 20:06

一,本章目标

掌握TreeSet的排序原理

掌握Set接口中重复元素的定义


二,具体内容

TreeSet类的内容是可以排序的,那么现在我任意给出一个类,观察是否能进行排序。


一个对象数组想要排序则要依靠Comparable接口完成。那么对于TreeSet一样,如果想排序,对象的类也要实现Comparable接口


此时是可以排序的,但是在结果中,重复的元素只有一个。此时依靠的是Comparable接口来完成的,而且还可以发现,赵六并没有加入进来,因为他与李四的年龄是一样的。

此时Comparable接口比较的只是年龄,所以为了保证正确,所有的属性都应该进行比较。

修改ComparableTo方法



可以发现赵六出来的。

此时去掉的重复元素并不是真正意义上的重复元素的取消。


此时重复元素并没有取消。

如果想要取消掉重复的元素,则需要Object类中的两个方法帮助:

hashCode:表示一个唯一的编码,一般通过计算表示

equals:对象的比较操作

修改Person中的代码:



现在可以发现重复元素没有了。


三,总结

曾经强调过,一个好的类,应该覆写equal,hashCode,toString方法,String类已经覆写完了

Set接口依靠hashCode和equals方法完成重复元素判断

TreeSet接口依靠Comparable接口完成排序操作



原创粉丝点击