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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HARRY_yFd0S 中级黑马   /  2016-9-9 15:54  /  594 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.Set集合
    特点: 无序,无索引,不可存储重复元素

2.Set集合的子类
    |-HashSet  
    |-TreeSet

3.通过使用HashSet存储自定义对象, 发现该对象必须要重写equals方法和hashCode方法才能保证集合中的元素唯一!

4.总结规律:
    两个不相同的对象,有可能hashCode相同
    equals方法返回true,两个对象的hashCode必须是相同的.

5.Set集合中的无序是指存取的顺序不一致!
    HashSet是没有排序功能,只是有可能有机率出现一些有顺序的内容而已!

6.TreeSet集合:
    1.可以保证元素的唯一,还可以对元素进行排序!

    2.当存储自定义对象的时候,如果没有实现Comparable接口的时候,在存储对象的时候就会报错: ClassCastException

    3.使用TreeSet存储自定义对象就需要该对象实现Comparable接口,并重写compareTo(), 该方法的返回值是int类型

    4.当compareTo方法返回0时,代表两个对象是相同,不会存到集合中.
      当compareTo方法返回负数时,集合是倒序存储
      当compareTo方法返回正数时,集合是怎么存怎么取

    5.TreeSet的底层是二叉树结构
        二叉树 = 红黑树

    6.调用compareTo方法的是将要存到集合中的元素.compareTo方法中参数是集合中的元素.


    7.比较器排序:
        定义一个类实现Comparator接口,重写compare(O1,O2)方法

    8.排序方式:
        1.自然排序: 让元素实现Comparable接口,重写compareTo方法.
        2.比较器排序: 给TreeSet传入一个比较器对象

    9.当TreeSet集合中的元素有实现Comparable接口,但是又传入了比较器对象,这个时候优先使用比较器排序.


    10.两种排序方式的区别:
        1.如果是自然排序,好处是比较节省代码,弊端是不灵活

        2.如果是比较器排序,好处是比较灵活,弊端是代码量多

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马