TreeSet集合存储自定义类型:
1、我们都知道TreeSet存储元素是自动按照从小到大排序的,那么存储的是自定义类型呢?
它还会按照从小到大排序吗?我们来测试一下:
发现存数据时都会抛出异常,更别说自动排序了。
// 运行抛出异常:java.lang.ClassCastException: class Person cannot be cast to class java.lang.Comparable.
// 这个异常是说:Person类型不能转换成Comparable类型,这个Comparable以able结尾,显然是个接口。
2、所以说系统要求我们能转换成Comparable类型,也就是要求Person类去实现Comparable接口,就是要我们定义Person类的比较规则。
那么如何重写Comparable接口的compareTo方法呢?
测试代码:
import java.util.*;
public class Test07 {
public static void main(String[] args) {
// 创建TreeSet对象
Set<Person> people = new TreeSet<>()