Java 集合框架

Java 集合框架提供了一组接口和类来实现各种数据结构和算法。在本教程中,我们将了解 Java 集合框架的不同接口。

在本教程中,我们将了解 Java 集合框架的不同接口。

Java 集合框架提供了一组接口和类来实现各种数据结构和算法。例如, LinkedList 集合框架的类提供了双向链表数据结构的实现。

集合框架的接口

Java 集合框架提供了各种接口。这些接口包括对集合执行不同操作的几种方法。

Java 集合框架中的接口

Java 集合框架中按照元素的存储方式分为有两种不同的集合:

  • 一种是直接存储元素的集合,他们的顶层接口是 Collection 接口。
  • 一种是按键值对存储元素的集合,他们的顶层接口是 Map 接口。

我们将在后面的章节中详细了解这些接口、它们的子接口以及在各个类中的实现。让我们在本教程中简要了解常用的接口。

Collection 接口

Collection 接口是一个集合框架中的根接口。

Java 没有提供 Collection 接口的直接实现类,但是提供其子接口(ListSetQueue)的实现类。要了解更多信息,请访问:Java Collection 接口

集合框架与 Collection 接口

人们经常在集合框架和 Collection 接口之间混淆。

Collection 接口是集合框架的根接口。集合框架中还包括其他接口: MapIterator . 这些接口也可能有子接口。

Colelction 接口的子接口

Collection 接口是一个集合框架中的根接口,它有 3 个字接口: ListSetQueue

以下是 Collection 接口的子接口:

  • List 接口

    List 接口定义了一个有序集合,允许我们像数组一样添加和删除元素。要了解更多信息,请访问 Java 列表接口

  • Set 接口

    Set 接口定义了一个无序的集合,并且不能有重复的元素。要了解更多信息,请访问 Java Set 接口

  • Queue 接口

    Queue 接口定义了队列的集合,当我们想要以先进先出的方式存储和访问元素时,将使用该接口。要了解更多信息,请访问 Java 队列接口

Map 接口

在 Java 中,Map 接口按照键/值对的方式存储元素。键是不能重复的,可用于访问映射的值。而且,每个键只有一个与之关联的值。要了解更多信息,请访问 Java Map 接口

Java 迭代器接口

在 Java 中, Iterator 接口定义了一个可以迭代的集合应该有的操作。要了解更多信息,请访问Java 迭代器接口

为什么使用集合框架?

Java 集合框架提供了各种可以直接使用的数据结构和算法。这有两个主要优点:

  • 我们不必编写代码来手动实现这些数据结构和算法。
  • 随着集合框架的高度优化,我们的代码将更加高效。

此外,集合框架允许我们为特定类型的数据使用特定的数据结构。这里有一些例子:

  • 如果我们希望我们的数据是唯一的,那么我们可以使用 Set 接口。
  • 要将数据存储在键/值对中,我们可以使用 Map 接口。
  • ArrayList 类是一个可调整大小的列表。

示例:ArrayList 类

最后,我们看一下 ArrayList 的例子。

ArrayList 类允许我们创建可调整大小的数组。ArrayList 类实现了 List 接口( List 接口是 Collection 接口的子接口)。

// 集合框架在 java.util 包中
import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> animals = new ArrayList<>();
    // 添加元素
    animals.add("Dog");
    animals.add("Cat");
    animals.add("Horse");

    System.out.println("ArrayList: " + animals);
  }
}

输出

ArrayList: [Dog, Cat, Horse]

在后面的教程中,我们将借助示例详细了解集合框架的接口和类。

目录

  1. Java Collection 接口

    Collection 接口是 Java 集合框架的根接口。在本教程中,我们将了解 Java Collection 接口及其子接口。
  2. Java List 接口

    List 又称列表,是一个有序集合。在本教程中,我们将了解 Java 中的 List 接口及其方法。
  3. Java ArrayList

    在本教程中,我们将学习 Java 中的 ArrayList 类。我们将通过示例了解 ArrayList 的不同操作和方法。
  4. Java Vector

    在本教程中,我们将了解 Vector 类及其使用方法。我们还将了解它与 ArrayList 类的不同之处,以及为什么我们应该使用 `ArrayList` 。
  5. Java Stack

    Java Stack 类实现了堆栈数据结构。在本教程中,我们将借助示例了解 Java Stack 类及其方法。
  6. Java Queue 接口

    Queue 接口定义了队列数据结构。在本教程中,我们将了解 Java Queue 接口及其方法。
  7. Java PriorityQueue

    PriorityQueue 是优先队列的实现。在本教程中,我们将通过示例了解 Java 集合框架的 PriorityQueue 类。
  8. Java Deque 接口

    Deque 接口定义了双端队列数据结构的功能。在本教程中,我们将了解 Deque 接口、如何使用 Deque 接口以及它的方法。
  9. Java LinkedList

    LinkedList 类使用双向链表数据结构实现了列表 `List` 和双端队列 `Deque` 接口的所有功能。在本教程中,我们将通过示例详细了解 Java LinkedList 类。
  10. Java ArrayDeque

    ArrayDeque 类使用数组实现了队列和双端队列数据结构。在本教程中,我们通过示例学习 ArrayDeque 类及其用法。此外,我们将 ArrayDeque 作为堆栈使用。
  11. Java 阻塞队列

    BlockingQueue 接口定义了阻塞队列的操作。在本教程中,我们将了解 Java BlockingQueue 接口及其方法。
  12. Java ArrayBlockingQueue

    ArrayBlockingQueue 底层使用数组实现了阻塞队列。在本教程中,我们将借助示例了解 ArrayBlockingQueue 类及其用法。
  13. Java LinkedBlockingQueue

    LinkedBlockingQueue 底层使用链表实现了有界的或者无限容量的阻塞队列。在本教程中,我们将借助示例了解 LinkedBLockingQueue 类及其用法。
  14. Java Map 接口

    Java Map 接口定义了由键映射到值的数据结构的操作。在本教程中,我们将了解 Map 接口及其方法。
  15. Java HashMap

    HashMap 实现了 Map 接口,其内部利用键的哈希值保证键的唯一性。在本教程中,我们将通过示例了解 Java HashMap 类及其各种操作。
  16. Java LinkedHashMap

    LinkedHashMap 是保存了元素插入顺序的 HashMap。在本教程中,我们将通过示例了解 Java LinkedHashMap 类及其用法。
  17. Java WeakHashMap

    WeakHashMap 的键是弱引用,很适合内存敏感的场景,比如缓存。在本教程中,我们将通过示例学习 Java WeakHashMap 类及其操作。我们还将了解 WeakHashMap 和 HashMap 之间的区别。
  18. Java EnumMap

    EnumMap 是一个特殊的 Map 类型,它的键必须是枚举类型的。在本教程中,我们将通过示例学习 Java EnumMap 类及其用法。
  19. Java SortedMap 接口

    SortedMap 是一个保证元素排序的 Map。在本教程中,我们将了解 Java SortedMap 接口及其方法。
  20. Java NavigableMap 接口

    NavigableMap 扩展了 SortedMap 接口,提供几个根据键值导航的方法。在本教程中,我们将通过示例学习 Java NavigableMap 接口及其用法。
  21. Java TreeMap

    TreeMap 底层使用树结构实现了键值对存储数据,它存储的键值对条目是有序的和可导航的。在本教程中,我们将通过示例了解 Java TreeMap 类及其用法。
  22. Java ConcurrentMap 接口

    ConcurrentMap 是一个线程安全且保证原子操作的 Map。在本教程中,我们将了解 Java ConcurrentMap 接口及其方法。
  23. Java ConcurrentHashMap

    ConcurrentHashMap 实现了一个线程安全且保证原子操作的高性能的 Map。在本教程中,我们将通过示例介绍 Java ConcurrentHashMap 类和它的用法。
  24. Java Set 接口

    Set 是一个不保证排序,元素不能重复的集合。在本教程中,我们将了解 Java 中的 Set 接口及其方法。
  25. Java HashSet

    HashSet 是一个没有重复元素,不保证排序的 Set 集合。在本教程中,我们将通过示例 HashSet 和相关的操作。
  26. Java EnumSet

    EnumSet 中的元素的数据类型只能是枚举类型。在本教程中,我们将借助示例了解 Java EnumSet 类及其各种方法。
  27. Java LinkedHashSet

    LikedHashSet 是保存了元素插入顺序的有序的 Set 集合。在本教程中,我们将借助示例学习 Java LinkedHashSet 类及其方法。
  28. Java SortedSet 接口

    SortedSet 接口是一个保证元素顺序的 Set。在本教程中,我们将通过示例了解 Java 中的 SortedSet 接口及其方法。
  29. Java NavigableSet 接口

    NavigableSet 扩展了 SortedSet 接口,提供了几个导航方法报告与搜索目标最接近的匹配。在本教程中,我们将通过示例学习 Java NavigableSet 接口及其用法。
  30. Java TreeSet

    TreeSet 是一个元素有序的,可导航搜索的 Set 集合。在本教程中,我们将通过示例学习 Java TreeSet 类以及 TreeSet 的用法。
  31. Java Iterator 接口

    迭代器接口 Iterator 定义了迭代一个集合或序列所需的操作。在本教程中,我们将通过示例学习 Java 中的迭代器接口 Iterator 和它的用法。
  32. Java ListIterator 接口

    ListIterator 接口定义了列表集合的迭代器,可以前后两个方向迭代,并可以在迭代过程中修改列表数据。在本教程中,我们将通过示例了解 Java ListIterator 接口。