《杀死一只知更鸟》中有这样一段话:“你永远不可能真正地了解一个人,除非你穿上他的鞋子走来走去,站在他的角度思考问题。
可真当你走过他的路时,你连路过都觉得难过。”
世上没有真正的感同身受,也永远不会有一模一样的境遇。
很多时候,你以为看到了全貌,但其实只有冰山一角。永远不要凭着一点蛛丝马迹,就随意评判别人的人生。
在你看不到的角落里,多的是你不知道的事。
不知别人的苦,就别劝人大度;没有经历过他人的难,就不要肆意嘲讽。
早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties
这些类用来存储和操作对象组。
虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector
类的方式和使用 Properties
类的方式有着很大不同。
集合框架被设计成要满足以下几个目标。
为此,整个集合框架就围绕一组标准接口而设计。你可以直接使用这些接口的标准实现,诸如: LinkedList, HashSet, 和 TreeSet 等,除此之外你也可以通过这些接口实现自己的集合。
集合也称为容器,仅仅是一个对象,多个元素组成一个单元。集合用于存储、检索、操作和聚合数据。 通常,他们标识形成自然组的数据项,例如扑克牌(牌集合),邮件文件夹(字母集合)。
数组:
集合:
一个集合框架是用于表示和操作的集合统一架构。所有集合框架包含以下内容:
这些是表示集合的抽象数据类型。接口允许独立于它们的表示的细节来操纵集合。在面向对象语言中,接口通常形成层次结构。
这些是集合接口的具体实现。实质上,它们是可重用的数据结构。
这些方法对实现集合接口的对象执行有用的计算,例如搜索和排序。算法被认为是多态的: 也就是说,相同的方法可以用于适当的收集接口的许多不同的实现。实质上,算法是可重用的功能。
Java集合可分为 Collection 和 Map 两种体系。
Java集合的框架图:
Java 集合框架提供了以下好处:
通过提供有用的数据结构和算法,集合框架可以让您专注于程序的重要部分,而不是使其工作所需的低级“管道”。 通过促进不相关的 API 之间的互操作性,Java 集合框架免除了编写适配器对象或转换代码来连接 API。
这个集合框架提供了有用的数据结构和算法的高性能,高质量的实现。每个接口的各种实现是可以互换的, 所以程序可以通过切换集合实现来轻松地进行调整。由于您已经摆脱了编写自己的数据结构的苦差事, 您将有更多时间致力于提高程序的质量和性能。
集合接口是 APIs 来回传递集合的本地语言。如果我的网络管理 API 提供了一个节点名称的集合, 并且如果您的 GUI 工具包期望一个列标题的集合,我们的 API 将无缝地互操作,即使它们是独立编写的。
许多 API 自然会将输入的集合作为输出提供。过去,每个这样的 API 都有一个小的子 API 来操纵它的集合。 这些专用集合的子 API 之间几乎没有一致性,所以你必须从头学习每一个,使用它们很容易犯错误。 随着标准集合接口的出现,问题就消失了。
这是以前优势的另一面。设计师和实施者不必在每次创建依赖于集合的 API 时重新发明轮子; 相反,他们可以使用标准的集合接口。
符合标准集合接口的新数据结构本质上是可重用的。对于在实现这些接口的对象上运行的新算法也是如此。
实现是用于存储集合的数据对象,本课介绍以下几种实现:
java.util.concurrent
软件包中的一部分通用实现被总结在下表
接口 | 哈希表 | 可变数组 | 平衡二叉树 | 链表 | 哈希表+链表 |
---|---|---|---|---|---|
Set | HashSet | TreeSet | LinkedHashSet | ||
List | ArrayList | LinkedList | |||
Deque | ArrayDeque | LinkedList | |||
Map | HashMap | TreeMap | LinkedHashMap | ||
Queue |
正如你可以从表中看到,Java 集合框架提供了几种通用的实现 Set, List 以及 Map。
限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见!!!
在这里插入图片描述
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。