美文网首页
寒假14:Set集合

寒假14:Set集合

作者: 是归人不是过客 | 来源:发表于2022-02-21 08:57 被阅读0次

    Set集合特点:
    不包含重复元素的集合
    没有带索引的方法,所以不能使用普通for循环遍历
    HashSet:对集合的迭代顺序不作任何保证

    Set<String> set = new HashSet<String>();
    set.add("hello");
    set.add("world");
    set.add("world");
    
    for(String s : set) {
      System.out.println(s);
    }
      
    
    输出: world hello
    

    哈希值
    哈希值是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值

    Object类中的 hashCode()
    public int hashCode(): 返回对象的哈希码值

    同一个对象多次调用hashCode()方法返回的哈希值是相同的


    例子.png

    HashSet集合概述和特点:
    底层数据结构是哈希表
    对集合的迭代顺序不做任何保证
    没有带索引的方法,不能对普通for循环遍历
    由于是set集合,所以不包含重复元素的集合

    HashSet集合保证元素唯一性源码分析.png

    哈希表默认初始长度为16,负载为0.75


    哈希表存储流程.png

    LinkedHashSet集合概述和特点
    哈希表和链表实现的Set接口,具有可预测的迭代次序
    由链表保证元素有序,也就是说元素的存储和去除顺序是一致的
    由哈希表保证元素唯一,也就是说没有重复的元素

    TreeSet集合概述和特点


    TreeSet集合概述和特点 .png

    自然排序Comparable的使用


    1.png 2.png 3.png 4.png

    return 1 正序
    return -1 倒序
    return 0 返回第一个元素

    Comparator的使用


    Comparator的使用.png

    相关文章

      网友评论

          本文标题:寒假14:Set集合

          本文链接:https://www.haomeiwen.com/subject/bxyplrtx.html