TreeSet红黑树结构

TreeSet红黑树结构

  • 存进去无序,但是取出来时会有排序(红黑树算法)
  • 这个集合在SortedSet接口下

存储对象元素

对象就必须实现Comparable接口,和其下的compareTo方法

Student实体类

//实现Comparable接口并泛型
public class Student implements Comparable<Student>{

    public String name;
    public int age;
    public char sex;

    public Student(){}

    public Student(String name,int age,char sex){
        this.age = age;
        this.name = name;
        this.sex = sex;
    }
实现compare()

如果对象的全部属性都相同,就代表是重复元素

@Override
public int compareTo(Student o) {
    int name = this.name.compareTo(o.name);
    int age = this.age - o.age;
    int sex = this.sex - o.sex;

    /**
     * 两者的name属性数据相同,
     * 判断其他属性数据是否相同
     */
    return name == 0 ? age - sex : name;
}

main()

package com.li.changGe.collections.setGather;

import com.li.changGe.pojo.Student;

import java.util.Set;
import java.util.TreeSet;

public class TreeSetDemo01 {

  public static void main(String[] args) {
      Set<Student> set = new TreeSet();

      Student student = new Student("长歌",18,'女');
      Student student1 = new Student("世民",22,'男');
      Student student2 = new Student("则天",20,'女');

      set.add(student);
      set.add(student1);
      set.add(student2);
//----------------------------------------------------------------
      //重写compareTo()后按照属性来判重
      set.add(new Student("长歌",18,'女'));

      //重写前长度4,重写后3
      System.out.println("长度:"+set.size()+"\n"+set);

  }

}

TreeSet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helloses

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值