前言~🥳🎉🎉🎉
hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥💥,如果发现这篇文章有问题的话,欢迎各位评论留言指正,大家一起加油!一起chin up!👍👍
💥个人主页:E绵绵的博客
💥所属专栏:JAVA知识点专栏 JAVA题目练习 c语言知识点专栏 c语言题目练习
❤️❤️从这一篇文章开始,我们正式结束JAVASE,正式开始学习java数据结构这个阶段。我们这篇文章主要是为java数据结构这个阶段起个头,讲下其主要框架。那么开始出发吧!
什么是集合框架
❤️❤️Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。有几个典型的集合框架:
Collection接口:是集合框架的根接口,定义了一组通用的方法,用于操作集合中的元素。它有两个主要的子接口:List和Set。
List接口:继承自Collection接口,表示一个有序的集合,允许重复元素。它的常见实现类有ArrayList、LinkedList和Vector。
Set接口:继承自Collection接口,表示一个不允许重复元素的集合。它的常见实现类有HashSet、TreeSet和LinkedHashSet。
Map接口:表示一组键值对的集合,每个键都是唯一的。它的常见实现类有HashMap、TreeMap和LinkedHashMap。
集合框架提供了丰富的方法和算法,可以方便地对集合进行增删改查等操作。它可以用于各种场景,如数据存储、数据排序、数据过滤等。使用集合框架可以提高代码的可读性和可维护性,并且可以更好地利用Java语言的特性。
如下是其总体系图(里面包含了很多集合框架,并且内部都是重要的类和接口):
这图我们看下就行,不要求强记里面的类和接口,在之后的学习里会一一讲解这里面的类和接口。
集合框架的重要性
1. 开发中的使用
❤️❤️使用成熟的集合框架,有助于我们便捷、快速的写出高效、稳定的代码学习背后的数据结构知识,有助于我们理解各个集合的优缺点及使用场景。
2. 笔试及面试题
腾讯-Java后台开发面经
1. HashMap 了解不,介绍一下,如果一个对象为 key 时,hashCode 和 equals 方法的用法要注意什么?
2. HashSet 和 HashMap 的区别是什么?
3. HashMap 是线程安全的么?那需要线程安全需要用到什么?
阿里巴巴-Java后台开发面经
1. ArrayList 和 LinkedList 的区别是什么?
2. 有了解过 HashMap 的具体实现么?
3. HashMap 和 ConcurrentHashMap 哪个效率更高?
今日头条-Java后台开发面经
1. 编程题:判断一个链表是否是一个回文链表。
2. Redis 的 zset 类型对应到 java 语言中大致是什么类型?
3. hashCode 主要是用来做什么用的?
❤️❤️在面试时大部分是跟其有关的知识,所以我们得学好它,才能找到心仪的offer。
容器背后所涉及的数据结构以及算法
1.什么是数据结构
🎯🎯数据结构是计算机科学中用于组织和存储数据的一种方式。它定义了数据的组织方式、访问和操作数据的方法,以及数据之间的关系。常见的数据结构包括数组、链表、栈、队列、树、图等。(之后一一会讲)
2.容器背后对应的数据结构
❤️❤️在学数据结构的这阶段,我们主要学习以下容器,每个容器其实都是对某种特定数据结构的封装,大概了解一下,也不用记,之后的文章会给大家一一详细讲解并模拟实现:
1. Collection:是一个接口,包含了大部分容器常用的一些方法
2. List:是一个接口,规范了ArrayList 和 LinkedList中要实现的方法:
ArrayList:实现了List接口,底层为动态类型顺序表
LinkedList:实现了List接口,底层为双向链表
3. Stack:底层是栈,栈是一种特殊的顺序表
4. Queue:底层是队列,队列是一种特殊的顺序表
5. Deque:是一个接口
6. Set:集合,是一个接口,里面放置的是K模型:
HashSet:底层为哈希桶,查询的时间复杂度为O(1)
TreeSet:底层为红黑树,查询的时间复杂度为O( ),关于key有序的
7. Map:映射,里面存储的是K-V模型的键值对:
HashMap:底层为哈希桶,查询时间复杂度为O(1)
TreeMap:底层为红黑树,查询的时间复杂度为O( ),关于key有序
3.涉及的相关java知识
1. 泛型 Generic
2. 自动装箱 autobox 和自动拆箱 autounbox
3. Object 的 equals 方法
4. Comparable 和 Comparator 接口
❤️❤️对于这四个知识点,我们最后两个知识点在这之前就学了,前面两个没学,不过很快就会讲。
4.什么是算法
🎯🎯算法(Algorithm)是一系列解决问题的步骤或规则。它是计算机科学中非常重要的概念,用于描述如何执行特定任务或解决特定问题的方法。算法可以用来处理数据、执行计算、进行搜索、排序等等。一个好的算法应该具有正确性、效率和可读性等特点。
🎯🎯如何学好数据结构以及算法
以上文章部分都是对于我们的数据结构阶段开的头,大概介绍了上述java数据结构主要要学的知识点,这些知识点我们目前不要求记住背下,因为之后会一一详细介绍。
🎯🎯那么回归正题,怎么学好这阶段呢?
1. 不能死磕代码,要多思考其逻辑,而不是光看代码
2.注意画图和思考
3.多写博客总结
4.多刷题,牛客网 和 LeetCode都可以
总结
所以我们java数据结构阶段的学习就开完头啦!下篇文章将正式开始其知识点的详细学习!还希望各位大佬们能给个三连,点点关注,点点赞,发发评论呀,感谢各位大佬~❤️❤️💕💕🥳🎉🎉🎉