• JavaSet集合的使用(上)


    1、Set 集合的介绍

     Set集合的特点

      1、无索引,也就意味着没有基于索引操作集合的方法

      2、唯一,元素不允许重复

     Set集合的常用实现类

    • HashSet
    • LinkedHashSet
    • TreeSet

    不同的Set集合的实现类有不同的特点,因此有着不同的应用场景。

    Set接口继承Collection接口,它没有在Collection接口上增加额外的方法。

    因此学习Set集合重点掌握不同实现类的特性,前提是掌握了Collection接口方法的使用。

    2、HashSet集合的使用

    HashSet实现了Set接口,HashSet的特性如下

    1、无索引,也就意味着没有基于索引操作集合的方法

    2、唯一,元素不允许重复

    3、存取无序,存储和取出来的顺序不一致

    HashSet底层的数据结构是哈希表,不同的JDK版本,哈希表的组成结构是不一样的

    java8以前哈希表由数组加链表组成

    Java8以后链表元素的数量如果没有超过8个,那么还是由数组加链表组成,如果链表元素的数量超过了8个,哈希表由数组+链表+红黑树组成。

    3、Set集合保持唯一性的原理

    Set集合保持唯一性依靠集合存储对象的两个方法:HashCode()方法和equals()方法,这两方法是来自于Object类,因此集合的元素都有着两个方法。

    • hashCode() 根据对象的地址计算哈希值
    • equals() 判断对象的地址是否相等

    Set集合保持唯一性的流程

     1、当Set集合添加元素的时候,会调用该元素的hashCode()方法来计算哈希值,判断该哈希值对应的位置上是否有哈希值相同的元素,如果该位置上没有哈希值相同的元素,那么就将该元素存储到Set集合中,如果该位置上由哈希值相同的元素,那么就会产生哈希冲突。

     2、如果产生了哈希冲突,然后调用元素的equals()方法和该位置上所有的元素进行比较,如果比较完成后该位置上的任意一个元素和要存储的元素相等,那么就不存储,否则就存储。

  • 相关阅读:
    request Dispatch
    xmlHTTPRequest
    java 文件上传
    文件上传(2)
    文件上传
    Tomcat 加入windows 服务自启动设置
    windows下配置两个或多个Tomcat启动的方法
    HibernateProxy异常处理 java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
    checkbox遍历操作, 提交所有选中项的值
    tomcat结合nginx使用 基础教程
  • 原文地址:https://www.cnblogs.com/ljknlb/p/16229430.html
Copyright © 2020-2023  润新知