黑马程序员技术交流社区

标题: 【成都校区】Set集合&Hash冲突 [打印本页]

作者: GreyH3nTa1    时间: 2019-4-18 14:00
标题: 【成都校区】Set集合&Hash冲突
        Set集合的特点(HashSet对集合的迭代顺序不作任何保证)
        不包含重复的元素
        没有带索引的方法,所以不能使用普通for遍历
        哈希值
是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
Object类中有一个方法可以获取对象的哈希值:
        public int hashCode();
        哈希值的特点:
        同一个对象多次调用hashCode方法返回的哈希值是相同的
        默认情况下,不同对象的哈希值是不相同的
        通过方法重写,可以实现不同对象的哈希值是相同的
        HashSet不能存储重复元素理论:
        当存储元素时,会首先调用其hashCode方法,会根据hashCode方法去判断到底应该存储在数组上的那个位置上,如果这个位置上没有元素,那么直接存储,如果有元素,则进行equals方法比较,如果equals比较结果相同,就不存储,如果不同则挂在数组上
        Hash冲突
        指的是不同的hashCode值所对应的元素索引在数组中一样
        hash冲突算法:就是为了解决hash冲突

        LinkedHashSet集合
        特点:有序,不可重复

        TreeSet集合
        特点:
        元素有序,这里的顺序不是指存储和取出的顺序,二十按照一定的规则进行排序,句体排序方式取决于构造方法
TreeSet():根据其元素的自然排序进行排序
TreeSet(Comparator comparator):根据制定的比较器进行排序
        没有带索引的方法,所以不宁使用普通for循环遍历
        由于是Set集合,所以不包含重复元素的集合


作者: 一只蛇    时间: 2019-4-18 17:52
牛啤牛啤,我从没见过这么工整完善的笔记,
6666
大佬大佬




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2