81.什么是树形结构?treeSet集合介绍与treeSet集合存放元素的两种规则(自然顺序+比较方式)

什么是树形结构?

<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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值