0


【Java数据结构系列】 第一章 —— 初识集合框架

前言

** 有的铁汁们问,我们不是要去学 Java数据结构 吗?**

** 数据结构 不应该是那些 链表、堆、队列、栈、二叉树 等等 之类的吗?**

** 为啥一上来,需要去了解 什么集合框架 呢?**

** 其实,所谓的 集合框架,就是一大堆的集合类;而这些集合类,就是Java官方 帮助我们已经封装好的 数据结构;也就是说,当我们真正需要用到某个数据结构的时候,直接用Java提供的对应的集合类 就可以了。**

** 当然,数据结构还是需要学的;因为 我们不仅仅需要知其然,更需要知其所以然;只有这样,我们才可以更加熟练的使用 Java官方已经提供好的数据结构。、**

** 所以,本系列的专栏的内容是这样的:先去了解一个数据结构的底层,再去了解这个数据结构 对应的Java的集合类......**


思维导图


一、几个前置小问题

1.1 什么是数据结构

** 数据结构,是一门单独的学科,与语言没有关系。**

** 即:数据 + 结构;是用来描述和组织数据的方式;**

** 即:类似于 想要到达目的地,可以通过的路径不一样(坐公交车,开小轿车......)**

** 至于为什么会有这么多的数据结构,其实是因为 描述和组织数据的方式是不一样的!!!!!!**

** 某些情况下,使用A数据结构;某些情况下,使用B数据结构!**

1.2 Java的数据结构和C/C++的数据结构有什么不一样

** 没有什么不一样,数据结构和语言没有关系。**

1.3 数据结构和数据库是不是一样

** 不一样,数据结构和数据库都是单独的学科;**

** 如果说它们之间的联系的话,数据库的底层 用到了 数据结构!**

** 好的,那么现在,正文开始 ...... **


二、什么是集合框架

传送门:官方教程(时刻准备中......)

** Java集合框架 Java Collection Framework,又被称为容器 container,是定义在 java.util 包下的一组接口interfaces 和 其实现类classes;**

** 其主要表现为 将多个元素element 置于一个单元中,用于对这些元素 进行快速、便捷的存储store、检索retrieve、管理manipulate,即 平时我们俗称的增删查改CRUD。**

** 例如,一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。**

类和接口总览:

从上面的图上,我们需要清楚以下内容:

  1. 理清楚 具体的类和接口的关系;
  2. **理清楚 接口和接口的关系。 **


三、集合框架的重要性

3.1 开发中的使用

  1. 使用成熟的集合框架,有助于我们 便捷、快速的 写出高效、稳定的代码;
  2. 学习背后的数据结构知识,有助于我们理解各个集合的优缺点及使用场景。

3.2 笔试及面试题

** 各个厂的笔试以及面试题 都会涉及到相关的知识,这里就不去一个个的罗列了;**

感兴趣的点击下面的传送门,可以自己去搜一搜然后看一看:

传送门:直通牛客网(时刻准备中......)


四、背后所涉及的数据结构以及算法

4.1 什么是数据结构

** 数据结构(Data Structure)是计算机存储、组织数据的方式;**

** 指 相互之间存在一种或多种 特定关系的数据元素的集合。**

4.2 容器背后所对应的数据结构

** 该阶段。我们主要学习以下容器,每个容器其实都是对 某种特定数据结构的封装;**

大概了解一下,后续会给大家详细讲解,并且模拟实现。

  1. Collection:是一个接口,包含了大部分容器 常用的一些方法;
  2. List:是一个接口,规范了ArrayList和LinkedList中要实现的方法:
  3. Stack:底层是 栈,栈 是一种特殊的顺序表;
  4. Queue:底层是 队列,队列 是一种特殊的顺序表;
  5. Deque:是一个接口;
  6. Set:集合,是一个接口,里面放置的是K型:
  7. Map:映射,里面存储的是K-V模型的键值对:

4.3 相关Java知识

  1. 泛型Generic;
  2. 自动装箱autobox 和 自动拆箱autounbox;
  3. Object 的 equals 方法;
  4. Comparable 和 Comparator 接口。

4.4 什么是算法

算法(Algorithm):

** 就是定义良好的计算过程,取一个或一组的值进行输入,并产生出一个或一组的值进行输出;**

** 简单的来说,就是一系列的计算步骤,用来将输入数据转化成输出结果。**

4.5 如何学好数据结构以及算法

(1)死磕代码,磕成这样就可以了:

(2)注意画图和思考

(3)多写博客总结

(4)多刷题(推荐:牛客网、力扣)


写在最后

在学习数据结构之前,还需要准备知道两个前置知识:

  1. 学习计算一个算法的 时间复杂度和空间复杂度;
  2. **了解泛型(以能看懂代码为止,不必深究)。 **

别着急,这两个前置知识 在后面会一一介绍;

希望各位铁汁们都收获满满,最后赚得盆满锅满......

** 当然,由于博主水平有限,可能会出现一些表达不清楚,或者出现一些其他的情况,**

** 欢迎各位铁汁们指出来,让博主一起改正,**

** 一起努力,共同进步;**

** 好了,如果这篇博客对铁汁们有帮助的话,可以送一个免费的 赞 嘛;**

** 当然,顺手点个关注是再好不过的了......**


本文转载自: https://blog.csdn.net/qq_53362595/article/details/124338734
版权归原作者 哎呀是小张啊 所有, 如有侵权,请联系我们删除。

“【Java数据结构系列】 第一章 —— 初识集合框架”的评论:

还没有评论