美文网首页
《Oracle Java SE编程指南》21-01:集合框架的概

《Oracle Java SE编程指南》21-01:集合框架的概

作者: AT阿宝哥 | 来源:发表于2020-05-05 02:10 被阅读0次
课程封面-JavaSE-AT阿宝哥

内容导航

  • 前言

前言

本节学习Java集合框架。在这里,我们将了解什么是集合和集合框架,还包括集合框架的核心元素接口、实现、聚合操作和算法,以及它们如何使工作更容易和程序更好。

1、什么是集合?

集合(Collection),有时称为容器,只是一个对象,但是它能将多个元素组合成一个独立的单元,并用于存储、检索、操作和传递聚合数据。

通常,它们表示自然分组的数据项,比如:

  • 通讯录
    好友的集合。

  • 收件夹
    邮箱已收信件的集合。

  • 专栏
    文章的集合。

  • 购物车
    待买商品的集合。

  • 朋友圈
    半公开的图文和视频的集合。

  • 粉丝列表
    博主到粉丝的映射。


2、什么是集合框架?

集合框架(Collections Framework),是用于表示和操作集合的统一体系结构。

所有集合框架包含以下内容:

  • 接口
    接口表示集合的抽象数据类型。接口允许独立于集合表示的细节来操作集合。在面向对象语言中,接口通常形成一个层次结构。

  • 实现
    实现是集合接口的具体实现,本质上,它们是可重用的数据结构。

  • 算法
    这些方法对实现集合接口的对象执行有用的计算,例如搜索和排序。这些算法被认为是多态的:也就是说,相同的方法可以用于适当的集合接口的许多不同实现。从本质上讲,算法是可重用的功能。

除了Java集合框架之外,最著名的集合框架示例是c++标准模板库(STL)和Smalltalk的集合层次结构。从历史上看,集合框架一直非常复杂,这使它们以具有陡峭的学习曲线而闻名。我们认为Java集合框架打破了这一传统,您将在本章中了解到这一点。

2、Java集合框架的优点

Java集合框架提供了以下好处:

  • 减少编程工作
    通过提供有用的数据结构和算法,Collections框架使您可以将精力集中于程序的重要部分,而不是使其工作所需的底层“管道”。通过促进不相关的api之间的互操作性,Java集合框架使您不必编写适配器对象或转换代码来连接api。
  • 提高程序速度和质量
    这个集合框架提供了有用的数据结构和算法的高性能、高质量的实现。每个接口的各种实现都是可互换的,因此可以通过切换集合实现轻松地对程序进行调优。因为您从编写自己的数据结构的苦差事中解脱出来,您将有更多的时间用于提高程序的质量和性能。

  • 允许在不相关的api之间进行互操作
    集合接口是api来回传递集合的术语。如果我的网络管理API提供了一组节点名,如果您的GUI工具包需要一组列标题,那么我们的API将无缝地进行互操作,即使它们是独立编写的。

  • 减少了学习和使用新api的工作
    许多api自然地接受输入集合并将其作为输出提供。过去,每个这样的API都有一个用于操作其集合的小子API。这些特别的集合子api之间几乎没有一致性,因此您必须从头开始学习每个子api,并且在使用它们时很容易出错。随着标准收集接口的出现,问题消失了。

  • 减少设计新api的工作
    这是以前优势的另一面。设计人员和实现人员不必每次创建依赖于集合的API时都要重复劳动;相反,它们可以使用标准的集合接口。

  • 促进软件重用
    符合标准集合接口的新数据结构本质上是可重用的。对实现这些接口的对象进行操作的新算法也是如此。

3、集合类层次结构

集合类层次结构图

在面向对象编程中,我们常常需要把多个对象按照一定的结构存储起来。
例如,在做数据库查询之后,我们往往需要把结果集转换成一个一个实体对象,存储起来。这时候就需要使用集合。
集合是Java中非常重要的API,不仅实用性强,面试中也常见。

集合类层次结构.png

集合是Java语言中非常重要的API
用来存储多个数据
实现了不同的数据结构

Java集合框架的三大接口

Collection
所有集合类的根接口
Map
映射接口,存放键值对。
Iterator
遍历集合的迭代接口

Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中。


持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!


扫描二维码,关注AT阿宝哥

相关文章

网友评论

      本文标题:《Oracle Java SE编程指南》21-01:集合框架的概

      本文链接:https://www.haomeiwen.com/subject/oshpghtx.html