TreeSet使用
TreeSet
TreeSet使用
程序位置:
Student类程序位置:
添加字符串元素
添加Person类元素
添加Person类型数据发现出现了数据类型转换异常
Person类不能转换为java.Comparable类型
因为对于红黑树而言,左边节点数据要比中间根节点数据小,右边节点数据要比中间根节点大
对于添加的Person类元素而言,不知道怎么比元素大小,自然发生了类型转换异常
要想把Person类型元素添加到TreeSet集合当中,必须要实现Comparable接口,如下所示
比较规则:先比较姓名,再比较年龄
- Student类实现Comparable接口
- 重写compareTo方法
- 测试程序如下图:
观察结果我们发现,当添加元素姓名不一致时先比较姓名,排序方式为字母顺序(首字母、次字母......)
当添加元素姓名一致,比较年龄大小
总结
- 元素必须要实现Comparable接口
- compareTo方法返回值为0,认为是重复元素
整体程序(Person类)