集合

作者: Auncle_ | 来源:发表于2019-05-22 18:14 被阅读0次

    1.集合与数组

    数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。

    集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。

    2.集合结构图

    20170905084554470.png

    3.list

    List里存放的对象是有序的,同时也是可以重复的

    3.1 ArrayList

    ArrayList是基于数组的,在初始化ArrayList时,会构建空数组(Object[] elementData={})。ArrayList是一个无序的,它是按照添加的先后顺序排列,当然,他也提供了sort方法,如果需要对ArrayList进行排序,只需要调用这个方法,提供Comparator比较器即可

    3.2 LinkedList

    LinkedList是基于链表的,它是一个双向链表,每个节点维护了一个prev和next指针。同时对于这个链表,维护了first和last指针,first指向第一个元素,last指向最后一个元素。LinkedList是一个无序的链表,按照插入的先后顺序排序,不提供sort方法对内部元素排序。

    3.3 Vector

    该类和ArrayList非常相似,但是该类是同步的,可以用在多线程的情况,该类允许设置默认的增长长度,默认扩容方式为原来的2倍。

    4.set

    Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。
    Set 接口存储一组唯一,无序的对象。

    4.1 HashSet

    该类实现了Set接口,不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个。

    4.2 LinkedHashSet

    具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。(有序)

    4.3 TreeSet

    该类实现了Set接口,可以实现排序等功能。

    5.Map

    5.1 HashMap

    HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
    该类实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步 无序

    5.2 TreeMap

    继承了AbstractMap,并且使用一颗树。有序

    5.3 Hashtable

    Hashtable 是 Dictionary(字典) 类的子类,位于 java.util 包中。线程安全的

    5.4 LinkedHashMap

    继承于HashMap,使用元素的自然顺序对元素进行排序.

    5.5 线程安全map

    SynchronizedMap、HashTable、ConcurrentHashMap

    相关文章

      网友评论

          本文标题:集合

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