什么是树形结构?
<1>所有出现的数据在添加过程中都会有一个【比较大小的过程】
<2>出现连续 一个方向的分支,会进行平衡操作;【了解】
treeSet集合介绍,与treeSet集合存放元素的两种规则
【重点】
存放在treeSet集合中的元素必须存在自然顺序,或者比较方式
<1>自然顺序:①数字,②字符;
<2>比较方式【重点】 两种方式:
①实现Comparable<T>
接口
②实现Comparator<T>
接口
图片来源于大佬
public class Test{
//成员变量
private String name;
private Integer age;
private String sex;
//无参构造方法
public Test(){}
//有参构造方法
public Test(String name,Integer age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
public static void main(String[] args) {
//创建一个TreeSet集合 存放String类型数据 正常
TreeSet<String> set1 = new TreeSet<>();
set1.add("A");
set1.add("B");
set1.add("C");
//向treeSet集合中添加元素
set1.add("D");
System.out.println(set1);
//创建一个TreeSet集合 存放Integer类型数据 正常
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(2);
treeSet.add(3);
treeSet.add(4);
System.out.println(treeSet);
//创建一个TreeSet集合 存放Test类对象数据 异常
TreeSet<Test> set2 = new TreeSet<>();
//报错 ClassCastException
//原因:Test类没有对应的比较方式,
//而TreeSet每一个存储的元素都需要有对应的比较方式或者自然顺序;
set2.add(new Test("小哈",10,"男"));
set2.add(new Test("小花",8,"女"));
set2.add(new Test("小金",7,"男"));
set2.add(new Test("小黄",9,"男"));
System.out.println(set2);
}
}