Java # Collections

什么是Collection

集合(有时称为容器)只是将多个元素分组为一个单元的对象。集合用于存储、检索、操作和通信聚合数据。通常,它们表示形成自然组的数据项,例如一手扑克牌(纸牌的集合)、邮件文件夹(信件的集合)或电话簿(姓名到电话号码的映射)。如果您使用过 Java 编程语言(或任何其他编程语言)

集合框架是用于表示和操作集合的统一架构。所有集合框架包含以下内容:

  • Interfaces 接口:这些是表示集合的抽象数据类型。接口允许独立于其表示的细节来操作集合。在面向对象语言中,接口通常形成层次结构。
  • Implementations 实现:这些是集合接口的具体实现。本质上,它们是可重用的数据结构。
  • Algorithms 算法:这些是对实现集合接口的对象执行有用计算的方法,例如搜索和排序。这些算法被认为是多态的:也就是说,相同的方法可以用于适当集合接口的许多不同实现。本质上,算法是可重用的功能。

1. Interfaces

集合接口封装了不同类型的集合,如下图所示。这些接口允许独立于其表示的细节来操作集合。集合接口是 Java 集合框架的基础。如下图所示 ,核心集合接口形成了一个层次结构。

The core collection interfaces.
请注意,层次结构由两个不同的树组成,这里Map不是一个真正的 Collection

public interface Collection<E>...

语法< E >告诉您该接口是通用的(泛型)。当你声明一个Collection实例时,你可以并且应该指定集合中包含的对象的类型。指定类型允许编译器(在编译时)验证放入集合中的对象类型是否正确,从而减少运行时的错误。有关泛型类型的信息,请参阅 泛型.(已更新)。

集合接口

  • Collection— 集合层次结构的根。集合代表一组称为其元素的对象。接口Collection是所有集合实现的最小公分母,用于传递集合并在需要最大通用性时操作它们。某些类型的集合允许重复元素,而其他类型则不允许。有些是有序的,有些是无序的。 Java 平台不提供该接口的任何直接实现,但提供了更具体的子接口的实现,例如Set和List。
    合理的创建标题,有助于目录的生成。更多详细请参考Collection Interface
  • Set— 不能包含重复元素的集合。该接口对数学集合抽象进行建模,并用于表示集合,例如组成一手牌的牌、构成学生日程的课程或在机器上运行的进程。另请参阅 Set Interface 接口部分。
  • List— 有序集合(有时称为序列)。Lists 可以包含重复元素。 List通常可以精确控制每个元素在列表中的插入位置,并且可以通过元素的整数索引(位置)访问元素。如果你用过Vector,你就会熟悉它。另请参阅 List Interface 部分。
  • Queue— 用于在处理之前保存多个元素的集合。除了基本Collection操作之外,Queue提供附加的插入、提取和检查操作,另请参阅 Queue Interface 部分。
  • Deque— 用于在处理之前保存多个元素的集合。除了基本Collection操作之外,a 还Deque提供附加的插入、提取和检查操作。
    双端队列既可以用作 FIFO(先进先出),也可以用作 LIFO(后进先出)。在双端队列中,所有新元素都可以在两端插入、检索和删除。另请参阅 Deque Interface 部分。
  • Map— 将键映射到值的对象。 Map不能包含重复的键;每个键最多可以映射到一个值。另请参阅 Map Interface部分。

最后两个核心集合接口只是Set和 的排序版本Map:

  • SortedSet— 保持其元素按升序排列。提供了几个附加操作来利用排序。排序集用于自然排序的集,例如单词列表和会员名册。另请参阅 SortedSet Interface 部分。
  • SortedMap— 以升序键顺序维护其映射。这是Map的类比SortedSet。排序映射用于自然排序的键/值对集合,例如字典和电话簿。另请参阅 SortedMap Interface 部分。

2. Implementations

Implementations 是用于存储集合的数据对象,它们实现接口部分中描述的接口。
下表总结了通用实现
在这里插入图片描述

  • 对于Set接口来说,HashSet是最常用的实现
  • 对于List接口来说,ArrayList是最常用的实现
  • 对于Map接口来说,HashMap是最常用的实现
  • 对于Queue接口来说,LinkedList是最常用的实现
  • 对于Deque接口来说,ArrayDeque是最常用的实现

欢迎阅读,以及欢迎指出不足之处,如果点赞就更好了;
祝您学习愉快~😊😊😊

  • 32
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值