当前位置: 首页 > news >正文

第2章 Java集合

2.1 谈谈你对Java集合的理解

难度:★★★

重点:★★★★

白话解析

集合类的概念还是比较重要的,不仅面试经常问,实际开发中也离不开。如果能把这道题真正理解了,集合可以说基本上没问题了。

集合就用来用存数据的,它提供了对数据增删改查和统计大小等方法。在Java中集合就两大类:Collection和Map,这两兄弟都是接口,规范了一些对数据操作的方法,但是他们自己不实现这些方法,而是由他们的子类去实现,这就好比,他们只制定规范,具体落地由其他人来做。

在理解具体的集合之前,我们要明白,集合是用来在内存中存数据的,而内存中存数据的基本结构无非就只有数组、链表、树、图等结构。搞明白这个,我们继续往下走。

在Collection接口下又定义了三个主要的子接口:Set、List、Queue;所以以后在被问到Java集合的时候,理解Set、List、Queue、Map这四兄弟就好了,那接下来为啥要有这四兄弟,简单做个介绍:

  • Set:按照源码的解释就是,它就是用来存不能出现重复的数据。

  • List:按照源码的解释,它是有序的集合,为什么说他有序呢?它会为每个数据给一个下标,标识该数据的唯一性,所以它里面可以存重复的。

  • Queue:从名字就能看出来,它就是一个队列,不过不算是基本结构,因为它底层真正用来存数据的依然是数组或者链表。然后通过基本数据结构疯转成队列这么一个结构,提供先进先出

相关文章:

第2章 Java集合

2.1 谈谈你对Java集合的理解 难度:★★★ 重点:★★★★ 白话解析 集合类的概念还是比较重要的,不仅面试经常问,实际开发中也离不开。如果能把这道题真正理解了,集合可以说基本上没问题了。 集合就用来用存数据的,它提供了对数据增删改查和统计大小等方法。在Java中集合…...

YOLOv5、YOLOv8改进:C3STR(Swin Transformer)

目录 1.介绍 2. YOLOv5、YOLOv8改进 2.1 common.py配置 2.2 yolo.py配置 2.3 yaml配置文件 1.介绍 视觉领域正在见证从 CNN 到 Transformers 的建模转变,纯 Transformer 架构在主要视频识别基准测试中达到了最高准确度。这些视频模型都建立在 Transformer 层之…...

AIGC百模大战

AIGC Artificial Intelligence Generated Content, 或者Generative Artificial Intelligence,它能够生成新的数据、图像、语音、视频、音乐等内容,从而扩展人工智能系统的应用范围。 生成式人工智能有可能给全球经济带来彻底的变化。根据高盛…...

docker jira 一键安装含PJ(docker 一键安装jira)

docker jira 一键安装含PJ(docker 一键安装jira) 本文仅供参考学习,请勿用于商业用途本文用于Jira在Docker的安装,仅用于记录安装方式转载请注明来源Linux安装可参考链接Windows安装可查考链接Docker一键安装Confluence PJ条件允…...

认识一下Git

目录 Git Git下载 Git安装 Git初始化 Git操作 Git、GitLab、和Eclipse是公司中软件开发常用的组合: 1. Git:Git是一种分布式版本控制系统,用于跟踪文件和代码的变化。它提供了管理代码仓库的功能,可以记录每次提交的修改&am…...

只需4步使用Redis缓存优化Node.js应用

介绍 通过API获取数据时,会向服务器发出网络请求,收到响应数据。但是,此过程可能非常耗时,并且可能会导致程序响应时间变慢。 我们使用缓存来解决这个问题,客户端程序首先向API发送请求,将返回的数据存储…...

【react基础01】项目文件结构描述

react 项目文件结构描述 📂 REACTWORKSPACE📂 node_modules📂 public📄 favicon.ico📄 index.html📄 logo192.png📄 logo512.png📄 manifest.json📄 robots.txt &#x1…...

光电开关-NPN-PNP

基础概念 有信号 “检测到物体/有物体遮挡” 工作原理 NPN:表示共正电压,输出负电压【只能输出低电压或者悬空 常开常闭是指 输出有没有跟“地”接通】; NPN NO:表示常态下是常开的,检测到物体时黑色线输出一个负电压…...

学会使用Git 和 GitHub

Git 和 GitHub 都是程序员每天都要用到的东西 —— 前者是目前最先进的 版本控制工具,拥有最多的用户,且管理着地球上最庞大的代码仓库;而后者是全球最大 同性交友 代码托管平台、开源社区。 在没有这两个工具时,编程可能是这样的…...

SoftwareTest3 - 要了人命的Bug

软件测试基础篇 一 . 如何合理的创建一个 Bug二 . Bug 等级2.1 崩溃2.2 严重2.3 一般2.4 次要 三 . Bug 的生命周期四 . 跟开发产生争执应该怎么解决 Hello , 大家好 , 又给大家带来新的专栏喽 ~ 这个专栏是专门为零基础小白从 0 到 1 了解软件测试基础理论设计的 , 虽然还不足…...

Linux系统中MySQL库的操作,实操sql代码

Linux系统中MySQL库的操作 本文主要是对linux系统下MySQL库操作的总结,包含创建、删除、修改数据库,数据库的编码格式和校验格式以及数据库的恢复和备份。 1.创建数据库 1.1基本语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_s…...

Python基础分享之面向对象的进一步拓展

我们熟悉了对象和类的基本概念。我们将进一步拓展,以便能实际运用对象和类。 调用类的其它信息 上一讲中提到,在定义方法时,必须有self这一参数。这个参数表示某个对象。对象拥有类的所有性质,那么我们可以通过self,调…...

Windows安装Docker Desktop并配置镜像、修改内存占用大小

启用Hyper-V Win S 搜索控制面板 安装WSL2 第一种方法(推荐) 以管理员运行命令提示符,然后重启Docker Desktop wsl --updatewsl --set-default-version 2第2种方法去微软官网下载WSL2并安装 《微软官网下载WSL2》 配置WSL2最大内…...

Zipping

Zipping 信息收集端口扫描目录扫描webbanner信息收集 漏洞利用空字节绕过---->失败sqlI-preg_match bypass反弹shell 稳定维持 提权-共享库漏洞 参考:https://rouvin.gitbook.io/ibreakstuff/writeups/htb-season-2/zipping#sudo-privileges-greater-than-stock-…...

pytorch学习---实现线性回归初体验

假设我们的基础模型就是y wx b,其中w和b均为参数,我们使用y 3x0.8来构造数据x、y,所以最后通过模型应该能够得出w和b应该分别接近3和0.8。 步骤如下: 准备数据计算预测值计算损失,把参数的梯度置为0,进行反向传播…...

别再乱写git commit了

B站|公众号:啥都会一点的研究生 写在前面 在很长的一段时间中,使用git commit都是随心所欲,log肥肠简洁,随着代码的迭代,当时有多偷懒,返过头查看git日志就有多懊悔,就和写代码不写doc string…...

八大排序(一)冒泡排序,选择排序,插入排序,希尔排序

一、冒泡排序 冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮…...

泊松分布简要介绍

泊松分布是一种常见的离散概率分布,它用于描述某个时间段或区域内随机事件发生的次数。它得名于法国数学家西蒙丹尼泊松。 泊松分布的概率质量函数表示某个时间段或区域内事件发生次数的概率。如果随机变量 X 服从泊松分布,记作 X ~ Poisson(λ)&#x…...

C语言每日一题(10):无人生还

文章主题:无人生还🔥所属专栏:C语言每日一题📗作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想😄🎶个人主页:[₽]的个人主页🏄&#x1f…...

VSCode开发go手记

断点调试: 安装delve(windows): go get -u github.com/go-delve/delve/cmd/dlv 设置 launch.json 配置文件: ctrlshiftp 输入 Debug: Open launch.json 打开 launch.json 文件,如果第一次打开,会新建一…...

Omron NJ/NX程序:自动化控制与智能人机交互的集成

omron欧姆龙NJ/NX程序 欧姆龙NJ501-1300,欧姆龙NB系列触摸屏,分布式总线控制,CJ1W-DRM21模块通信主从站控制。 全自动马达电机组装机,整机采用EtherCAT总线网络节点控制, 欧姆龙R88D系列总线伺服,发那科机…...

Thiserror终极性能优化指南:避开5大常见陷阱的最佳实践

Thiserror终极性能优化指南:避开5大常见陷阱的最佳实践 【免费下载链接】thiserror derive(Error) for struct and enum error types 项目地址: https://gitcode.com/gh_mirrors/th/thiserror Thiserror是Rust生态中一款强大的错误处理工具,通过d…...

Phi-3-mini-4k-instruct-gguf在LSTM时间序列预测项目中的辅助作用

Phi-3-mini-4k-instruct-gguf在LSTM时间序列预测项目中的辅助作用 1. 引言:小模型的大作用 最近在做一个LSTM时间序列预测项目时,我发现了一个有趣的现象:虽然最终模型训练用的是大参数量的LSTM网络,但在整个项目流程中&#xf…...

ESP32-S3播放网络音频避坑指南:PlatformIO库依赖、I2S引脚冲突与内存优化

ESP32-S3音频开发实战:从库依赖管理到高稳定流媒体方案 引言:当智能硬件遇上音频流媒体 在物联网设备上实现音频播放功能,听起来像是把手机上的功能搬到了一个小开发板上——直到你真正开始动手。ESP32-S3凭借其双核处理能力和丰富的外设接口…...

ABB机器人编程避坑指南:从数据类型到运动指令的7个易错点

ABB机器人编程避坑指南:从数据类型到运动指令的7个易错点 第一次在RobotStudio里看到机器人因为数据类型错误突然停止时,我盯着报错信息足足愣了五分钟。这种经历在ABB机器人编程中并不罕见——从数据类型选择到运动指令参数设置,每个环节都可…...

实战指南:从零构建高可用 Kubernetes 多节点集群(生产环境最佳实践)

1. 环境准备:生产级集群的硬件与系统配置 搭建生产级Kubernetes集群的第一步是做好硬件选型和系统配置。很多新手容易忽视这个环节,结果在后期遇到性能瓶颈时才后悔莫及。根据我在金融和电商行业的部署经验,控制平面和工作节点的配置需要严格…...

创业合伙人人力股分配的五大核心要素与实操指南

1. 行业属性决定人力股占比 创业团队在分配人力股时,首先要考虑的就是行业特性。不同行业对人力的依赖程度天差地别,这直接决定了人力股在总股权中的占比区间。 以软件开发公司为例,这类企业最核心的资产就是程序员的技术能力。我曾参与过一…...

PyCharm虚拟环境配置避坑指南:为什么你的模块导入有提示但运行报错?

PyCharm虚拟环境配置避坑指南:为什么你的模块导入有提示但运行报错? 作为Python开发者,PyCharm的智能提示功能是我们日常开发的重要助力。但你是否遇到过这样的情况:明明在虚拟环境中安装了模块,代码运行时一切正常&am…...

m4s-converter:3分钟搞定B站缓存视频的终极转换方案

m4s-converter:3分钟搞定B站缓存视频的终极转换方案 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站视频突然下架而烦恼…...

【芳芯科技】教室灯人数管理系统

实物效果图:实现功能: 采用32位的STM32微控制器处理核心,采用光敏电阻检测教室内不同地方的光照强度,利用红外热释电传感器检测人体,实现在教室无人或者光照充足时自动关灯,有人到来且光照不足时自动关灯的…...