<返回更多

Java 集合框架超详细!

2023-10-09  今日头条  微风01
加入收藏
JCF是指一个数据集接口框架,它统称为 Collection 和 Map 接口。一组数据被定义为 Collection ,它扩展了 Iterable 接口。Iterable 实现了一个接口结构,允许访问属于集合的元素。This 的访问被定义为通过 Iterator 访问。Collection 提供一维数据管理。

Java 集合框架超详细!

简介

JAVA 提供了用于管理和操作数据的接口。

这称为 Java 集合框架 (JCF)。

由于它根据要存储和管理的数据的类型和特征提供各种形式和实现,

让我们根据需要的情况应用和使用它。

JCF

Java 集合框架超详细!

JCF是指一个数据集接口框架,它统称为 Collection 和 Map 接口。

一组数据被定义为 Collection ,它扩展了 Iterable 接口。

Iterable 实现了一个接口结构,允许访问属于集合的元素。

this 的访问被定义为通过 Iterator 访问。

Collection 提供一维数据管理。

具有代表性的Collection实现接口如下:

List :保证顺序,不保证唯一性(即可能出现重复)。

Queue:实现了一个通用的队列类型结构。

Set :不保证顺序,但保证唯一性(不重复)。

Map: 具有二维(键值)结构。

List

一个索引的、有序的集合。

典型的实现类是:

每个数据都附有索引(顺序),通过它可以快速访问。

但是,在删除或插入中间数据的情况下,整个数据结构都会被修改。

因此,内存效率低下。

为每个数据生成一个点,并使用该点组成每个数据。

当删除或插入发生时,内存效率低下最小化,但搜索数据时时间很慢。

线程安全得到保证,在访问线程时通过加锁来保证线程同步。

它用于保证在多线程环境中的稳定值。

这是一个典型队列结构的数据结构。

Set

是一种不保证顺序,保证唯一性的数据结构。

也就是说,它是一个不重叠的无序数据结构。

HashSet : 最纯粹的集合数据结构,完全随机排序。

通过覆盖equals和hashCode,区分对象,从根本上防止重复存储。

LinkedHashSet:这是一个Set数据结构,按照输入顺序存储数据。

它继承并实现了HashSet,按插入顺序管理数据。

TreeSet:是一种内部按升序排序的Set数据结构。

添加和删除数据需要时间,但搜索和排序非常好(当然因为它是树结构...)

Map

它是一种以键值格式以二维形式管理数据的数据结构。

导入数据时,一种序列是键,它所在的列是值,所以你可以把它看成是一个即时的、动态的小型数据库。

基本上不保证数据标识符Key的顺序。

插入删除操作速度快,特点是自动排序。

因此,它是一种用于在多线程环境下保证稳定值的数据结构。

HashMap 是随机输出和有序结构,而 LinkedHashMap 保持插入顺序。

Queue

它是一种数据结构,对应于队列数据结构的一般概念。

从尾巴到超市结账的方法(排队)

计算方式与头部(出队)结构相同。

它是第一个为优先级队列构造的队列对象,允许将其声明和实现为原始队列。

与一般通过中间数据结构的其他数据结构不同,它实现了 AbstractCollection 类,这是 Collection 接口的抽象类。

这是一个用于实现通用队列的实现类。

可以在前端(head)和尾部(tAIl)同时实现出队(删除)和入队(插入)操作。

通过为每个数据实现优先级来排队处理任务

如果两个线程同时访问出队任务,就会出现异常。

为了解决这个问题,通过 Concurrent 包实现并提供了阻塞的概念。

它通过线程等待通用队列的 put、offer、take、poll、peek 来工作。

换句话说,如果队列在条目之间饱和或为空,或者如果另一个线程正在访问它,则线程等待并在它被释放时执行命令。

特别是,可以使用一种称为 drainTo(Collection) 的方法,放入该集合的所有元素 (c)

可以使用下面两种来实现:

Deque(双端队列)

扩展 Queue 接口的概念。

一个普通的队列可以从Head取数据(dequeue),从tail放数据(enqueue)。

实现方式:

它是一种允许基本甲板构造的实现。

此实现由 Array 支持,因此非常高效,因为它会立即移动而无需额外的内存引用。

提供允许单个线程一次只能访问一个(阻塞)的功能。

正如Concurrent这个词所说的那样,它是一种保证ThreadSafe的保证数据结构。

由于是Linked数据结构,所以具有Linked的大部分优点和缺点。

Stack

它是一种实现常用栈概念的数据结构。

既然是继承了遗留的Vector构建的数据结构,那么Thread Safe自然是有保证的,

由于并发访问线程固定为单一数据结构,不适合作为多线程环境下的数据结构。

堆中使用的概念被实现为方法。

Iterator(迭代器)

Iterator 是一个接口,它指定了一个可访问由 Collection 扩展的 Iterable 的接口。

该实现可以访问 Collection 并检索其元素。

Iterable(可迭代对象)

简单来说,For语句可以操作的数据结构是Iterable数据结构的一种实现。

换句话说,如果目标数据可以通过迭代(for,while)访问,它扩展了Iterable。

当然...扩展 Iterable 的实现是 Iterable 的目标。

总结

以上内容是很基础的集合知识,帮助我们平时开发的时候更正确的去使用集合结构以及避免BUG困扰。这些知识需要牢记,值得反复查阅。

关键词:框架      点击(12)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多框架相关>>>