☕目录☕
🍚前言
🧀思维导图
🧇一、几个前置小问题
🍛🍛1.1 什么是数据结构
🍞🍞1.2 Java的数据结构和C/C++的数据结构有什么不一样
🍗🍗1.3 数据结构和数据库是不是一样
🥡二、什么是集合框架
🍜三、集合框架的重要性
🥩🥩3.1 开发中的使用
🍤🍤3.2 笔试及面试题
🍔四、背后所涉及的数据结构以及算法
🍖🍖4.1 什么是数据结构
🍟🍟4.2 容器背后所对应的数据结构
🍊🍊4.3 相关Java知识
🍓🍓4.4 什么是算法
🍉🍉4.5 如何学好数据结构以及算法
🥤写在最后
前言
有的铁汁们问,我们不是要去学 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。
例如,一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。
类和接口总览:
从上面的图上,我们需要清楚以下内容:
- 理清楚 具体的类和接口的关系;
- 理清楚 接口和接口的关系。
三、集合框架的重要性 3.1 开发中的使用
-
使用成熟的集合框架,有助于我们 便捷、快速的 写出高效、稳定的代码;
-
学习背后的数据结构知识,有助于我们理解各个集合的优缺点及使用场景。
各个厂的笔试以及面试题 都会涉及到相关的知识,这里就不去一个个的罗列了;
感兴趣的点击下面的传送门,可以自己去搜一搜然后看一看:
传送门:直通牛客网(时刻准备中......)
四、背后所涉及的数据结构以及算法 4.1 什么是数据结构
数据结构(Data Structure)是计算机存储、组织数据的方式;
指 相互之间存在一种或多种 特定关系的数据元素的集合。
4.2 容器背后所对应的数据结构该阶段。我们主要学习以下容器,每个容器其实都是对 某种特定数据结构的封装;
大概了解一下,后续会给大家详细讲解,并且模拟实现。
- Collection:是一个接口,包含了大部分容器 常用的一些方法;
- List:是一个接口,规范了ArrayList和LinkedList中要实现的方法:
- Stack:底层是 栈,栈 是一种特殊的顺序表;
- Queue:底层是 队列,队列 是一种特殊的顺序表;
- Deque:是一个接口;
- Set:集合,是一个接口,里面放置的是K型:
- Map:映射,里面存储的是K-V模型的键值对:
- 泛型Generic;
- 自动装箱autobox 和 自动拆箱autounbox;
- Object 的 equals 方法;
- Comparable 和 Comparator 接口。
算法(Algorithm):
就是定义良好的计算过程,取一个或一组的值进行输入,并产生出一个或一组的值进行输出;
简单的来说,就是一系列的计算步骤,用来将输入数据转化成输出结果。
4.5 如何学好数据结构以及算法(1)死磕代码,磕成这样就可以了:
(2)注意画图和思考
(3)多写博客总结
(4)多刷题(推荐:牛客网、力扣)
写在最后
在学习数据结构之前,还需要准备知道两个前置知识:
- 学习计算一个算法的 时间复杂度和空间复杂度;
- 了解泛型(以能看懂代码为止,不必深究)。
别着急,这两个前置知识 在后面会一一介绍;
希望各位铁汁们都收获满满,最后赚得盆满锅满......
当然,由于博主水平有限,可能会出现一些表达不清楚,或者出现一些其他的情况,
欢迎各位铁汁们指出来,让博主一起改正,
一起努力,共同进步;
好了,如果这篇博客对铁汁们有帮助的话,可以送一个免费的 赞 嘛;
当然,顺手点个关注是再好不过的了......
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)