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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mm2015 中级黑马   /  2015-12-26 23:48  /  584 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、 Set体系特点: 元素唯一,无序,无索引

        遍历方式:可以使用迭代器,可以使用增强for。

        Collection体系 -- 在AbstractCollection这个抽象类中重写的toString()
       
2、HashSet
       
        结论:HashSet保证元素的唯一性,依赖于元素所属类的hashCode() 和 equals() 方法。
        分析:
                元素添加到HashSet集合,先走hashCode(),
                如果发现哈希值不一样,元素不重复,直接添加到集合了。
                如果发现哈希值一样,再去走equals方法,比较具体的属性值。
                        如果equals返回了true,元素重复不添加。
                        如果equals放回false,元素不重复,添加到集合。
                       
        注意事项:
                1)、工具生成hashCode()方法的理解:尽量让具有不同属性值的对象,返回不同的哈希值,提高效率。
                        如果自己重写:
                                把所有成员变量的哈希值相加返回即可,引用数据调hashCode方法,基本数据用值。
               
                2)、工具生成equals()方法,有提高程序效率和增加程序健壮性的判断。
                        如果自己重写 -- 三步:
                                为了提高效率 -- 判断传递进来的对象与调用方法的对象是否是同一个(地址值一样)
                                为了程序的健壮性 -- 判断传递进来的对象与调用方法的对象是否是同一个类的实例。
                                向下转型,比较具体的属性值。
                               
                       
3、 LinkedHashSet
        保证元素唯一,且保证存取顺序(迭代顺序),数据结构依赖链表和哈希表
       
       
4、 TreeSet
        TreeSet可以保证元素唯一,且能实现对元素排序。
       
                TreeSet实现排序的方式1:
                        自然排序 -- 让元素具备比较性:
                                元素所属类实现Comparable接口,重写compareTo()方法。
                        根据compareTo()返回值:
                                返回0,元素重复,不添加。
                                返回正数,元素往后放。
                                返回负数,元素往前放。
                                       
                        元素取出的时候,自根节点开始,按照每个节点的左中右原则取出的。
       
                方式2:
                        比较器顺序 -- 让集合具备比较性
                                自定义类实现Comparator接口,重写compare()方法,然后将Comparator的子类对象传递到TreeSet的构造方法。
                                可以采用匿名内部类的方式。
                               
        注意:
                1)、分析排序条件的主次
                2)、键盘录入需要自定义结束标记。
                3)、如果两种排序方式都有,以比较器顺序优先。
       
       
       
       

1 个回复

倒序浏览
不错,总结这么详细...赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马