Java 提供了用于管理和操作数据的接口。
这称为 Java 集合框架 (JCF)。
由于它根据要存储和管理的数据的类型和特征提供各种形式和实现,
让我们根据需要的情况应用和使用它。
JCF是指一个数据集接口框架,它统称为 Collection 和 Map 接口。
一组数据被定义为 Collection ,它扩展了 Iterable 接口。
Iterable 实现了一个接口结构,允许访问属于集合的元素。
this 的访问被定义为通过 Iterator 访问。
Collection 提供一维数据管理。
具有代表性的Collection实现接口如下:
List :保证顺序,不保证唯一性(即可能出现重复)。
Queue:实现了一个通用的队列类型结构。
Set :不保证顺序,但保证唯一性(不重复)。
Map: 具有二维(键值)结构。
一个索引的、有序的集合。
典型的实现类是:
每个数据都附有索引(顺序),通过它可以快速访问。
但是,在删除或插入中间数据的情况下,整个数据结构都会被修改。
因此,内存效率低下。
为每个数据生成一个点,并使用该点组成每个数据。
当删除或插入发生时,内存效率低下最小化,但搜索数据时时间很慢。
线程安全得到保证,在访问线程时通过加锁来保证线程同步。
它用于保证在多线程环境中的稳定值。
这是一个典型队列结构的数据结构。
是一种不保证顺序,保证唯一性的数据结构。
也就是说,它是一个不重叠的无序数据结构。
HashSet : 最纯粹的集合数据结构,完全随机排序。
通过覆盖equals和hashCode,区分对象,从根本上防止重复存储。
LinkedHashSet:这是一个Set数据结构,按照输入顺序存储数据。
它继承并实现了HashSet,按插入顺序管理数据。
TreeSet:是一种内部按升序排序的Set数据结构。
添加和删除数据需要时间,但搜索和排序非常好(当然因为它是树结构...)
它是一种以键值格式以二维形式管理数据的数据结构。
导入数据时,一种序列是键,它所在的列是值,所以你可以把它看成是一个即时的、动态的小型数据库。
基本上不保证数据标识符Key的顺序。
插入删除操作速度快,特点是自动排序。
因此,它是一种用于在多线程环境下保证稳定值的数据结构。
HashMap 是随机输出和有序结构,而 LinkedHashMap 保持插入顺序。
它是一种数据结构,对应于队列数据结构的一般概念。
从尾巴到超市结账的方法(排队)
计算方式与头部(出队)结构相同。
它是第一个为优先级队列构造的队列对象,允许将其声明和实现为原始队列。
与一般通过中间数据结构的其他数据结构不同,它实现了 AbstractCollection 类,这是 Collection 接口的抽象类。
这是一个用于实现通用队列的实现类。
可以在前端(head)和尾部(tail)同时实现出队(删除)和入队(插入)操作。
通过为每个数据实现优先级来排队处理任务
如果两个线程同时访问出队任务,就会出现异常。
为了解决这个问题,通过 Concurrent 包实现并提供了阻塞的概念。
它通过线程等待通用队列的 put、offer、take、poll、peek 来工作。
换句话说,如果队列在条目之间饱和或为空,或者如果另一个线程正在访问它,则线程等待并在它被释放时执行命令。
特别是,可以使用一种称为 drainTo(Collection) 的方法,放入该集合的所有元素 (c)
可以使用下面两种来实现:
扩展 Queue 接口的概念。
一个普通的队列可以从Head取数据(dequeue),从tail放数据(enqueue)。
实现方式:
它是一种允许基本甲板构造的实现。
此实现由 Array 支持,因此非常高效,因为它会立即移动而无需额外的内存引用。
提供允许单个线程一次只能访问一个(阻塞)的功能。
正如Concurrent这个词所说的那样,它是一种保证ThreadSafe的保证数据结构。
由于是Linked数据结构,所以具有Linked的大部分优点和缺点。
它是一种实现常用栈概念的数据结构。
既然是继承了遗留的Vector构建的数据结构,那么Thread Safe自然是有保证的,
由于并发访问线程固定为单一数据结构,不适合作为多线程环境下的数据结构。
堆中使用的概念被实现为方法。
Iterator 是一个接口,它指定了一个可访问由 Collection 扩展的 Iterable 的接口。
该实现可以访问 Collection 并检索其元素。
简单来说,For语句可以操作的数据结构是Iterable数据结构的一种实现。
换句话说,如果目标数据可以通过迭代(for,while)访问,它扩展了Iterable。
当然...扩展 Iterable 的实现是 Iterable 的目标。
以上内容是很基础的集合知识,帮助我们平时开发的时候更正确的去使用集合结构以及避免BUG困扰。这些知识需要牢记,值得反复查阅。
本文链接:http://www.28at.com/showinfo-26-12746-0.htmlJava 集合框架超详细!
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: 面试中如何答好:CAS