初识集合框架

news/2024/5/3 6:48:27

前言~🥳🎉🎉🎉 

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数据结构阶段的学习就开完头啦!下篇文章将正式开始其知识点的详细学习!还希望各位大佬们能给个三连,点点关注,点点赞,发发评论呀,感谢各位大佬~❤️❤️💕💕🥳🎉🎉🎉


http://www.mrgr.cn/p/51321401

相关文章

JS中的变量和数据类型及用户输入详解

源码 variate.html<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…

Arrow, 一个六边形的 Python 时间库

文章目录 Arrow, 一个六边形的 Python 时间库第一部分&#xff1a;背景介绍第二部分&#xff1a;库是什么&#xff1f;第三部分&#xff1a;如何安装这个库&#xff1f;第四部分&#xff1a;库函数使用方法第五部分&#xff1a;场景应用第六部分&#xff1a;常见Bug及解决方案第…

source map 开发优化工具

什么是 Source map 简单来说 Source map 就是一个存储信息的文件&#xff0c;里面储存着位置信息。 Source map 英文释义&#xff1a;源程序映射。 位置信息&#xff1a;转换后的代码 对应的 转换前的代码 位置映射关系。 有了 Source map&#xff0c;就算线上运行的是转换…

网络爬虫软件学习

1 什么是爬虫软件 爬虫软件&#xff0c;也称为网络爬虫或网络蜘蛛&#xff0c;是一种自动抓取万维网信息的程序或脚本。它基于一定的规则&#xff0c;自动地访问网页并抓取需要的信息。爬虫软件可以应用于大规模数据采集和分析&#xff0c;广泛应用于舆情监测、品牌竞争分析、…

Unity AR开发环境搭建

在这个项目中使用 Unity 2022.3.19。 AR项目建议使用2022.3及以上版本。 创建一个 3D URP 项目并将其命名为 Magicbox-AR。 注意&#xff1a;如果计划发布 iOS 版 AR 项目&#xff0c;则必须有权使用 Mac 进行最终构建。Windows 计算机无法为 iOS 设备构建最终产品。 项目创建…

对比实验系列:Efficientdet环境配置及训练个人数据集

一、源码下载 可以通过下方链接下载Efficientdet源码 GitHub - zylo117/Yet-Another-EfficientDet-Pytorch: The pytorch re-implement of the official efficientdet with SOTA performance in real time and pretrained weights.The pytorch re-implement of the official …

实战指南:使用 xUnit 和 ASP.NET Core 进行集成测试【完整教程】

引言 集成测试可在包含应用支持基础结构(如数据库、文件系统和网络)的级别上确保应用组件功能正常。 ASP.NET Core 通过将单元测试框架与测试 Web 主机和内存中测试服务器结合使用来支持集成测试。 简介 集成测试与单元测试相比,能够在更广泛的级别上评估应用的组件,确认多…

ElasticSearch实战之项目搜索高亮

文章目录 1. 前情配置2、数据操作2.1 操作API2.2 数据入库 3. 高亮搜索3.1 方法封装3.2 高亮搜索 1. 前情配置 为满足ElasticSearch可在项目中实现搜索高亮&#xff0c;我们需要先做一些前情配置 导入ElasticSearch依赖 <dependency><groupId>org.springframewor…

OpenHarmony UI动画-recyclerview_animators

简介 带有添加删除动画效果以及整体动画效果的list组件库 下载安装 ohpm install ohos/recyclerview-animatorsOpenHarmony ohpm 环境配置等更多内容&#xff0c;请参考如何安装OpenHarmony ohpm 包 使用说明 引入组件库 import { RecyclerView } from "ohos/recycler…

AR地图导览小程序是怎么开发出来的?

在移动互联网时代&#xff0c;AR技术的发展为地图导览提供了全新的可能性。AR地图导览小程序结合了虚拟现实技术和地图导航功能&#xff0c;为用户提供了更加沉浸式、直观的导览体验。本文将从专业性和思考深度两个方面&#xff0c;探讨AR地图导览小程序的开发方案。 编辑搜图 …

【Linux驱动层】iTOP-RK3568学习之路(二):vscode中设置头文件路径-完成代码自动补全

在Ubuntu下用vscode写Linux驱动层的时候&#xff0c;需要添加头文件&#xff1a; #include<linux/module.h> #include<linux/init.h> #include<linux/kernel.h>但vscode没有智能提示&#xff0c;因此需要我们手动添加自己的头文件路径&#xff1a; topeetu…

算法部署 | 使用TensorRT在Jetson-Xavier-AGX上部署YOLOv4目标检测算法

项目应用场景 面向 NVIDIA Jetson Xavier AGX 平台部署 YOLOv4 目标检测算法场景&#xff0c;项目采用 TensorRT 进行 GPU 算法加速推理。 项目效果 项目细节 > 具体参见项目 README.md (1) 安装依赖 Install pycuda (takes awhile) $ cd ${HOME}/catkin_ws/src/yolov4_tr…

不需要GPU就可以玩转模型,同时支持本地化部署

简单一款不需要GPU就可以在Win 机器跑的模型&#xff1a;Ollama&#xff1b;用于本地运行和部署大型语言模型&#xff08;LLMs&#xff09;的开源工具 关于Ollama的简要介绍 平台兼容性&#xff1a;Ollama支持多种操作系统&#xff0c;包括macOS、Linux和Windows&#xff0c;…

【QT+OpenCV】车牌号检测 学习记录 遇到的问题

【QTOpenCV】车牌号检测 学习记录 首先在QT里面配置好OpenCV .pro文件中加入&#xff1a; INCLUDEPATH G:/opencv/build/include LIBS -L"G:/opencv/build/x64/vc14/lib"\-lopencv_core \-lopencv_imgproc \-lopencv_highgui \-lopencv_ml \-lopencv_video \-lo.c…

前端三大件速成 01 HTML

文章目录 一、前端基础知识二、标签1、什么是标签2、标签的属性3、常用标签&#xff08;1&#xff09;声明&#xff08;2&#xff09;注释&#xff08;3&#xff09;html 根标签&#xff08;3&#xff09;head标签&#xff08;4&#xff09;body标签 三、特殊字符四、其他标签1…

Nacos—配置管理

简介&#xff1a; Nacos是阿里巴巴开发的&#xff0c;它旨在帮助用户更敏捷和容易地构建、交付和管理微服务平台。Nacos的主要功能和特性包括&#xff1a; 动态服务发现。Nacos支持基于DNS和RPC的服务发现&#xff0c;允许服务提供者和消费者之间的高效交互。动态配置管理。…

Mac下brew安装php7.4

这里作者挂了梯子&#xff0c;所以很流畅&#xff01; brew的下载&#xff0c;可参考另外一篇博文&#xff5e;Homebrew 安装与卸载 1、将第三方仓库加入brew brew tap shivammathur/php2、安装指定版本的PHP brew install php7.43、替换Mac自带PHP环境并刷新环境变量 -> …

transformer架构详细详解

一、transformer的贡献 transformer架构的贡献&#xff1a;该架构只使用自注意力机制&#xff0c;没有使用RNN或卷积网络。且可以实现并行计算&#xff0c;加快模型训练速度。 &#xff08;将所有的循环层全部换成&#xff1a;multi-headed self-attention&#xff09; 二、t…

HTML5+JavaScript实现本地视频/音频播放器

HTML5JavaScript实现本地视频/音频播放器 HTML5 提供了本地视频和音频播放器的支持&#xff0c;通过 <video> 和 <audio> 标签&#xff0c;这些标签支持多种媒体格式&#xff0c;并且可以通过 JavaScript 进行控制&#xff0c;实现功能比较完整的本地视频音频播放器…

在 Linux 终端中创建目录

目录 ⛳️推荐 前言 在 Linux 中创建一个新目录 创建多个新目录 创建多个嵌套的子目录 测试你的知识 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 前言 在本系列的这一部…