zoukankan      html  css  js  c++  java
  • java集合笔记

    所有集合均可使用迭代器进行遍历

    collocation接口

      collocation接口下有list接口与set接口


      list接口
        特点:有序,可重复

        ArrayList
          特点:底层数组结构,可以自动扩容,增删慢,查找快。运行效率高,线程不安全。初始容量为0,添加第一个元素时容量为10,1.5倍扩容。

        LinkedList:
          特点:底层链表结构,增删快,查找慢。运行效率高,线程不安全。(链表结构没有固定容量)

        Vector:
          特点: 底层数组结构,可以自动扩容,增删慢,查找快。运行效率低,线程安全。初始容量为10,2倍扩容,负载因子默认为1,可指定

        Stack:
          特点: 底层数组结构,继承自Vector,运行效率低,线程安全。

      set接口
        特点:无序,不可重复。可以使用比较器排序,比较器可以是实现Comparator接口,重写compare方法,也可继承Comparable类,重写ComparaTo方法,实现该接口为自然排序。

        HashSet:
          特点: 底层为数组加链表(哈希表),根据HashCode方法与equals方法判断元素是否重复,线程不安全

        TreeSet:
          特点: 底层为红黑树结构,TreeSet可以根据比较器或者根据元素来进行自然排序,不具备排序条件的元素放入TreeSet中会出现异常,不允许添加null元素,线程不安全

        LinkedHashSet:
          特点: LinkedHashSet是HashSet的子类,是set集合中唯一一个可以保证怎么存就怎么取的集合,LinkedHashSet,不允许元素重复,判断集合的方式与HashSet一致

    Map接口
        HashMap:
          特点: 双例集合,元素以键值对形式存储,允许null键与null值,无序,键不可重复。JDK1.8之前为数组+链表,链表采用头插法,JDK1.8开始为数组+链表,数组+红黑树,链表采用尾插法,当数组长度大于等于8时自动转换为数组+红黑树,小于等于6时自动转回数组+链表,默认长度为16,扩容因子为0.75,两倍扩容,容量为2的幂

        ConcurrentHashMap:
          特点: 双例集合,线程安全,底层引入分段锁的概念,将数据分成几段存储,根据value的HashCOde判断存储在哪个segment中,JDK1.7以及之前底层为数组加链表,与HashMap的区别是,核心变量使用volatile修饰,JDK1.8时底层为数组+红黑树,方法中的部分代码使用synchroized代码块

    初学者,难免会写错,欢迎指正

  • 相关阅读:
    adb稳定性monkey测试(转载)
    Cookie、sessionStorage、localStorage的异同
    Vue-eBookReader 学习笔记(初始化部分)
    ValueError: Max value is 14 解决方案
    Chrome 报错: Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
    Bootstrap使用方法
    Vue笔记
    3D相册 复仇者联盟
    奔跑的少年
    钟表练习 html+css实现
  • 原文地址:https://www.cnblogs.com/datom/p/13536637.html
Copyright © 2011-2022 走看看