A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

set:无序,不可以重复元素。
1.hashset
    数据结构是哈希表,线程是非同步的。
    保证元素唯一性的原理:判断元素的hashcode值是否相同。
    如果相同,还会继续判断元素的equals方法,是否为true。

2.treeset
    可以对set集合中的元素进行排序。
    底层数据结构是二叉树,保证元素唯一性的依据。
    1)如果传入的是字符串等简单元素,(按照名称,从a-z,从0-9.。。。。)
    2)如果传入的是对象元素。就需要复写比较方法。




class TreeSetDemo
{
//..........main方法
    {
        //.....新建一个TreeSet对象ts
        //当ts中存入数据的的时候,会自动调用已经复写好的compareTo方法,
        //因为Student实现了comparable接口,强制执行此方法。


        ts.add(new Student("lisi01",33));
        ts.add(new Student("lisi004",35));


        //.....创建取出对象的迭代器即可。
    }
}
class Student implements Comparable//该接口强制让学生具备比较性。
{
    //......定义属性的动作
    //复写比较方法compareTo
    public int compareTo(Object obj)
    {
        if(!(obj instanceof Student))
        {
            thorw new RuntimeException("不是学生对象");
        }
        Student s = (Student)obj;
        if(this.age>s.age)
            return 1;
        if(this.age==s.age)
            //如果确认年龄相等就是同一个人,就直接返回0.
//return =0;
//可是,如果年龄相同,还要判断姓名,就需要再判断一次
//用名字排序,字符串自动实现comparable接口。
return this.name.compareTo(s.name);
        return -1;
    }
}

1 个回复

倒序浏览
很有用的知识点  赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马