Java 集合框架
Java 集合框架提供了一组接口和类来实现各种数据结构和算法。在本教程中,我们将了解 Java 集合框架的不同接口。
在本教程中,我们将了解 Java 集合框架的不同接口。
Java 集合框架提供了一组接口和类来实现各种数据结构和算法。例如, LinkedList
集合框架的类提供了双向链表数据结构的实现。
集合框架的接口
Java 集合框架提供了各种接口。这些接口包括对集合执行不同操作的几种方法。
Java 集合框架中按照元素的存储方式分为有两种不同的集合:
- 一种是直接存储元素的集合,他们的顶层接口是
Collection
接口。 - 一种是按键值对存储元素的集合,他们的顶层接口是
Map
接口。
我们将在后面的章节中详细了解这些接口、它们的子接口以及在各个类中的实现。让我们在本教程中简要了解常用的接口。
Collection 接口
Collection
接口是一个集合框架中的根接口。
Java 没有提供 Collection
接口的直接实现类,但是提供其子接口(List
, Set
和 Queue
)的实现类。要了解更多信息,请访问:Java Collection 接口
集合框架与 Collection 接口
人们经常在集合框架和 Collection
接口之间混淆。
Collection
接口是集合框架的根接口。集合框架中还包括其他接口: Map
和 Iterator
. 这些接口也可能有子接口。
Colelction 接口的子接口
Collection
接口是一个集合框架中的根接口,它有 3 个字接口: List
, Set
和 Queue
。
以下是 Collection
接口的子接口:
-
List
接口定义了一个有序集合,允许我们像数组一样添加和删除元素。要了解更多信息,请访问 Java 列表接口 -
Set
接口定义了一个无序的集合,并且不能有重复的元素。要了解更多信息,请访问 Java Set 接口 -
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]
在后面的教程中,我们将借助示例详细了解集合框架的接口和类。
目录
-
Java Collection 接口
Collection 接口是 Java 集合框架的根接口。在本教程中,我们将了解 Java Collection 接口及其子接口。 -
Java List 接口
List 又称列表,是一个有序集合。在本教程中,我们将了解 Java 中的 List 接口及其方法。 -
Java ArrayList
在本教程中,我们将学习 Java 中的 ArrayList 类。我们将通过示例了解 ArrayList 的不同操作和方法。 -
Java Vector
在本教程中,我们将了解 Vector 类及其使用方法。我们还将了解它与 ArrayList 类的不同之处,以及为什么我们应该使用 `ArrayList` 。 -
Java Stack
Java Stack 类实现了堆栈数据结构。在本教程中,我们将借助示例了解 Java Stack 类及其方法。 -
Java Queue 接口
Queue 接口定义了队列数据结构。在本教程中,我们将了解 Java Queue 接口及其方法。 -
Java PriorityQueue
PriorityQueue 是优先队列的实现。在本教程中,我们将通过示例了解 Java 集合框架的 PriorityQueue 类。 -
Java Deque 接口
Deque 接口定义了双端队列数据结构的功能。在本教程中,我们将了解 Deque 接口、如何使用 Deque 接口以及它的方法。 -
Java LinkedList
LinkedList 类使用双向链表数据结构实现了列表 `List` 和双端队列 `Deque` 接口的所有功能。在本教程中,我们将通过示例详细了解 Java LinkedList 类。 -
Java ArrayDeque
ArrayDeque 类使用数组实现了队列和双端队列数据结构。在本教程中,我们通过示例学习 ArrayDeque 类及其用法。此外,我们将 ArrayDeque 作为堆栈使用。 -
Java 阻塞队列
BlockingQueue 接口定义了阻塞队列的操作。在本教程中,我们将了解 Java BlockingQueue 接口及其方法。 -
Java ArrayBlockingQueue
ArrayBlockingQueue 底层使用数组实现了阻塞队列。在本教程中,我们将借助示例了解 ArrayBlockingQueue 类及其用法。 -
Java LinkedBlockingQueue
LinkedBlockingQueue 底层使用链表实现了有界的或者无限容量的阻塞队列。在本教程中,我们将借助示例了解 LinkedBLockingQueue 类及其用法。 -
Java Map 接口
Java Map 接口定义了由键映射到值的数据结构的操作。在本教程中,我们将了解 Map 接口及其方法。 -
Java HashMap
HashMap 实现了 Map 接口,其内部利用键的哈希值保证键的唯一性。在本教程中,我们将通过示例了解 Java HashMap 类及其各种操作。 -
Java LinkedHashMap
LinkedHashMap 是保存了元素插入顺序的 HashMap。在本教程中,我们将通过示例了解 Java LinkedHashMap 类及其用法。 -
Java WeakHashMap
WeakHashMap 的键是弱引用,很适合内存敏感的场景,比如缓存。在本教程中,我们将通过示例学习 Java WeakHashMap 类及其操作。我们还将了解 WeakHashMap 和 HashMap 之间的区别。 -
Java EnumMap
EnumMap 是一个特殊的 Map 类型,它的键必须是枚举类型的。在本教程中,我们将通过示例学习 Java EnumMap 类及其用法。 -
Java SortedMap 接口
SortedMap 是一个保证元素排序的 Map。在本教程中,我们将了解 Java SortedMap 接口及其方法。 -
Java NavigableMap 接口
NavigableMap 扩展了 SortedMap 接口,提供几个根据键值导航的方法。在本教程中,我们将通过示例学习 Java NavigableMap 接口及其用法。 -
Java TreeMap
TreeMap 底层使用树结构实现了键值对存储数据,它存储的键值对条目是有序的和可导航的。在本教程中,我们将通过示例了解 Java TreeMap 类及其用法。 -
Java ConcurrentMap 接口
ConcurrentMap 是一个线程安全且保证原子操作的 Map。在本教程中,我们将了解 Java ConcurrentMap 接口及其方法。 -
Java ConcurrentHashMap
ConcurrentHashMap 实现了一个线程安全且保证原子操作的高性能的 Map。在本教程中,我们将通过示例介绍 Java ConcurrentHashMap 类和它的用法。 -
Java Set 接口
Set 是一个不保证排序,元素不能重复的集合。在本教程中,我们将了解 Java 中的 Set 接口及其方法。 -
Java HashSet
HashSet 是一个没有重复元素,不保证排序的 Set 集合。在本教程中,我们将通过示例 HashSet 和相关的操作。 -
Java EnumSet
EnumSet 中的元素的数据类型只能是枚举类型。在本教程中,我们将借助示例了解 Java EnumSet 类及其各种方法。 -
Java LinkedHashSet
LikedHashSet 是保存了元素插入顺序的有序的 Set 集合。在本教程中,我们将借助示例学习 Java LinkedHashSet 类及其方法。 -
Java SortedSet 接口
SortedSet 接口是一个保证元素顺序的 Set。在本教程中,我们将通过示例了解 Java 中的 SortedSet 接口及其方法。 -
Java NavigableSet 接口
NavigableSet 扩展了 SortedSet 接口,提供了几个导航方法报告与搜索目标最接近的匹配。在本教程中,我们将通过示例学习 Java NavigableSet 接口及其用法。 -
Java TreeSet
TreeSet 是一个元素有序的,可导航搜索的 Set 集合。在本教程中,我们将通过示例学习 Java TreeSet 类以及 TreeSet 的用法。 -
Java Iterator 接口
迭代器接口 Iterator 定义了迭代一个集合或序列所需的操作。在本教程中,我们将通过示例学习 Java 中的迭代器接口 Iterator 和它的用法。 -
Java ListIterator 接口
ListIterator 接口定义了列表集合的迭代器,可以前后两个方向迭代,并可以在迭代过程中修改列表数据。在本教程中,我们将通过示例了解 Java ListIterator 接口。