Java集合学习(一)——Collection集合架构概述

203 阅读2分钟

「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战

前言

 大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

 本文主要介绍Collection集合下的多个接口和实现类的基本作用,让读者了解Collection集合的基本架构。

Collection体系

(Collection接口派生了很多接口,这里我们就学习常用的即可。)

首先是三大子接口:

  1. Set接口:无序集合,元素不能重复。

    Set接口下有:

    1. EunmSet抽象类 :与枚举类型一起使用的专用 Set 实现类。

    2. SortedSet接口:进一步提供了关于元素的总体排序 的 Set接口。

      1. TreeSet类:TreeSet类是有序的,即加入到其中的元素会自动排序,排序方式根据构造函数而改变。此类不是同步的。
    3. HashSet类: 由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序(即加入的顺序可能和读取出的元素顺序不同);此类允许使用 null 元素。需要注意的是:此类不是同步的

      1. LinkedHashSet类:按照加入的元素顺序来进行迭代。实际是由哈希表和链接列表实现,可以存放null元素, 并且此类不是同步的。
  1. Queue接口:队列。

    队列接口,具有先进先出(FIFO)的特点。

    1. Deque接口(double ended queue(双端队列)):可以在队列的两端进行元素的加入和删除。

      1. ArrayDeque:Deque的可变数组的实现。不能存放null元素
    2. PriorityQueue类:优先级队列,元素按照自然顺序进行排序或根据指定的比较器进行排序。不能存放null元素此类不是同步的。

  1. List接口:有序集合,元素可以重复。

    1. ArrayList类:List接口的可变数组实现,可以存放null元素,此类不是同步的

    2. LinkedList类List 接口的链接列表实现,也实现了Deque接口。可以存放null元素,此类不是同步的。

    3. Vector类:和ArrayList类类似,区别是前者不是线程同步的,而Vector是线程同步的,我们多使用ArrayList。

      1. Stack类:堆栈的实现,具有后进先出的特点。常用Deque来代替:Deque<Integer> stack = new ArrayDeque<Integer>();

小结

以上就是我对Collection集合架构的一些基本了解,和其派生出的接口和实现类的一些基本介绍,之后我们来逐个学习其用法。

希望以上内容能对读者有所帮助,如有不正之处,欢迎留言评论。