Java集合概述

!!! note 目录

集合概述

一、什么是集合,有什么用?

  1. 集合定义:集合是一种容器,用来组织和管理数据的。

  2. Java 集合框架:Java 的集合框架提供了一套类库,用以实现各种数据结构。这些实现为开发者提供了丰富的工具来处理数据。

  3. 底层数据结构:每一个集合类底层采用的数据结构不同,例如:

    • ArrayList:底层采用数组。
    • LinkedList:底层采用双向链表。
    • HashMap:底层采用哈希表。
    • TreeMap:底层采用红黑树。

我们不需要自己实现这些数据结构的细节,Java 集合框架已经为我们提供了这些实现。但我们需要了解在何种场合下选择哪一种集合以确保最高的效率。

二、集合中存储的是对象引用而非对象本身

在Java中,集合存储的是对象的引用,而不是对象本身。
当你将一个对象添加到集合中时,实际上是将这个对象的引用(即内存地址)存储在集合中。因此,集合中的每个元素都指向实际存储在堆中的对象。

三、非泛型集合允许存储任何类型的引用

默认情况下,如果不使用泛型,集合可以存储任何类型的引用,只要这些引用属于 Object 类或其子类。而如果采用了泛型则只能存储同种类型的引用,但是他可以避免强转的风险。

四、Java集合框架的两大部分:Collection与Map

  1. Collection结构:用于存储单个元素的数据结构。它包括接口和类,如 ListSetQueue。这些接口定义了不同类型的集合以及对这些集合的操作。

    • List:有序集合,可以包含重复元素,如 ArrayListLinkedList
    • Set不允许重复元素,如 HashSetLinkedHashSetTreeSet
    • Queue:通常用于表示等待处理的元素的集合,如 LinkedListPriorityQueue
  2. Map结构:用于存储键值对数据结构。每个键映射到一个值,键和值的类型可以不同。常见的实现类包括 HashMapLinkedHashMapTreeMap

    • HashMap:基于哈希表的实现。
    • LinkedHashMap:维护了元素的插入顺序。
    • TreeMap:基于红黑树的实现,键是有序的。

五、主要的Java集合框架接口与实现类

  1. Collection 接口及其实现类

    • List 接口
      • ArrayList
      • LinkedList
      • Vector
      • Stack
    • Set 接口
      • HashSet
      • LinkedHashSet
      • TreeSet
    • Queue 接口
      • LinkedList
      • PriorityQueue
      • ArrayDeque
  2. Map 接口及其实现类

    • HashMap
    • LinkedHashMap
    • TreeMap
    • Hashtable
    • Properties