由于TreeSet可以实现对元素按照某种规则进行排序,例如下面的例子
运行结果为:
但是对自定义对象呢?
Student类:
原因分析:
由于不知道该安照那一中排序方式排序,所以会报错。
解决方法:
1.自然排序
2.比较器排序
自然排序要进行一下操作:
1.Student类中实现 Comparable<T>接口
2.重写Comparable接口中的Compareto方法
故Student类为:
特别注意在重写Compareto方法时,注意排序
而主类中为:
运行结果:
比较器排序步骤:
1.单独创建一个比较类,这里以MyComparator为例,并且要让其继承Comparator<T>接口
2.重写Comparator接口中的Compare方法
3.在主类中使用下面的 构造方法
构造一个新的空 TreeSet,它根据指定比较器进行排序。
主类:
MyComparator类:
学生类(不需要继承Comparetable接口)
运行结果:
由于单独创建一个类不是特别好,因而可以将MyComparetor的内容直接写到主类中
运行结果也如同上面一样
A:自然排序:要在自定义类中实现Comparerable<T>接口 ,并且重写compareTo方法
B:比较器排序:在自定义类中实现Comparetor<t>接口,重写compare方法
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/7943.html