我是靠谱客的博主 高大龙猫,最近开发中收集的这篇文章主要介绍TreeSet的特点...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

TreeSet的特点:底层使用红黑树存储元素,新增顺序跟遍历顺序不一致,无序,去重

TreeSet中存储的元素必须能比较大小,通过自然排序或者定制排序类比较大小

放入TreeSet集合中的元素自己可以排序,则成为自然排序

public class TestThree {
    public static void main(String[] args) {
        // TreeSet的特点:底层使用红黑树存储元素,新增顺序跟遍历顺序不一致,无序,去重
        // TreeSet中存储的元素必须能比较大小,通过自然排序或者定制排序类比较大小
        // 放入TreeSet集合中的元素自己可以排序,则成为自然排序

        Set set = new TreeSet();

//        set.add("Aom");
//        set.add("Jerry");
//        set.add("Jary");
//        set.add("June");

        Student stu = new Student("Tom",20,"男");
        Student stu1 = new Student("Jerry",20,"男");
        Student stu2 = new Student("Mary",23,"女");
        Student stu3 = new Student("June",21,"女");

        set.add(stu);
        set.add(stu1);
        set.add(stu2);
        set.add(stu3);
        //set接口在判断元素重复之后它。它是不执行新增的

        for (Object o : set) {
            System.out.println(o);
        }
    }
}

如果返回负数代表调用方法的对象小,参数对象大

如果返回正数代表调用方法的对象大,参数对象小

返回0代表两个元素相等,不执行新增操作

每一个新加进来的元素都要去调用compare to和原来的元素比大小。

// 实现自然排序必须让实体类实现Comparable接口,实现compareTo方法
public class Student implements Comparable{
    private String stuName;
    private int stuAge;
    private String stuGender;








// 如果返回负数代表调用方法的对象小,参数对象大
    // 如果返回正数代表调用方法的对象大,参数对象小
    // 返回0代表两个元素相等,不执行新增操作
    //每一个新加进来的元素都要去调用compare to和原来的元素比大小。
    @Override
    public int compareTo(Object o) {
        Student stu = (Student)o; //object强转为Student 有泛型就不用强转
        int result = this.getStuAge() - stu.getStuAge();// 升序排列,年龄排序由小到大
        // int result = stu.getStuAge() - this.getStuAge();// 降序排列
        if(result == 0){ //年龄相等就比名字大小
            result = this.getStuName().compareTo(stu.getStuName());
        }
        if(result == 0){  //名字相等比性别
            result = this.getStuGender().compareTo(stu.getStuGender());
        }
        return result;
    }

}

最后

以上就是高大龙猫为你收集整理的TreeSet的特点...的全部内容,希望文章能够帮你解决TreeSet的特点...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部