• Collection单列集合中的常用实现类


    Collection 集合层次的根接口
        List 有序 有索引 可以重复
          ArrayList
            底层数据结构是数组 查询快 增删快
            线程不安全 效率高
          LinkedList
            底层数据结构是链表 查询慢 增删快
            线程不安全 效率高
          Vector
            底层数据是数组 查询和增删介于前两者之间
            线程安全 效率低

        Set 唯一
          在调用add()方法时:
          在底层中以map的形式存储,存储时调用元素的hashCode(),equals(),map会自动比较key值(就是hash值)
            先比较hash值
              如果对象的hash值不相等,直接添加元素到集合
            如果对象的hash值相等 判断equals
              如果相同 不添加
              如果不相同 添加 //不直接用equals是为了提高比较的效率

          HashSet
            底层是哈希表(数组和链表的结合) 查询和增删都比较快
            无序 唯一
            通过元素本身的hashCode()和equals()方法保证元素的唯一性
            如果元素是基本数据类型和字符串类型一般都已经重写了hashCode()和equals()这两种方法了,可以直接存储
            如果集合存储自定义数据类型时就需要自己重写这两个方法(快捷键 shift + alt + s)
              重写hashCode()
                A:如果数据是基本数据类型,hashCode值一般是本身,
                 如果是引用数据类型,直接调用hashCode()方法即可(相当于调用了继承自父类的hashCode())
                B:一般可以添加一个中间值来处理hash值小了容易相等的情况 (*31)

          LinkedHashSet
            有序 唯一
            底层数据链表 + 哈希表(数组和链表的结合)
            链表来保证有序 哈希表保证元素唯一


  • 相关阅读:
    cookie+session,会话时间设定
    input中id和name属性的区别。
    框架和设计模式的区别
    Java数字格式化输出时前面补0
    DDL_数据库模式定义语言
    7.JAVA_SE复习(文件)
    (python)数据结构---集合
    (python)数据结构---字典
    (python)数据结构---字符串
    (python)排序算法
  • 原文地址:https://www.cnblogs.com/chonglchong/p/6637498.html
Copyright © 2020-2023  润新知