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

Java数据结构---初识集合框架

目录

一、什么是集合框架

 二、集合框架的重要性

三、背后涉及的数据结构及算法

1.什么是数据结构

2.容器背后对应的数据结构

3.相关的Java知识

4.什么是算法


一、什么是集合框架

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

其主要表现为将多个数据 置于一个单元中,用于对这些数据进行快速、便捷的存储 store 、检索 retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD。所以,Java集合框架的最终目的就是为了提供一套高效灵活的工具(那些提供的类和接口),对数据进行处理。
例如,一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。

类和接口总览(集合框架):

 


 二、集合框架的重要性

开发中的使用:

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

三、背后涉及的数据结构及算法

1.什么是数据结构

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。

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知识

  •  泛型 Generic
  •  自动装箱 autobox 和自动拆箱 autounbox
  •  Object 的 equals 方法
  •  Comparable 和 Comparator 接口

4.什么是算法

算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

相关文章:

Java数据结构---初识集合框架

目录 一、什么是集合框架 二、集合框架的重要性 三、背后涉及的数据结构及算法 1.什么是数据结构 2.容器背后对应的数据结构 3.相关的Java知识 4.什么是算法 一、什么是集合框架 Java 集合框架 Java Collection Framework ,又被称为容器 container &#xff0…...

Spring Cloud学习

1、什么是SpringCloud Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。Spring cloud 流应用程…...

【计算机网络】1.4 接入网和物理媒体

1.4 接入网和物理媒体 问题:怎样将端系统和边缘路由器连接? 答:有线方式(住宅接入网络、单位接入网络等)或无线方式(无线接入网络)。 有线接入方式 光纤同轴混合网是基于已有的有线电视网开发的…...

关于螺栓的基本拧紧技术了解多少——SunTorque智能扭矩系统

螺栓是机械中常见的紧固件之一,用于将两个或多个部件连接在一起,并保持它们之间的紧密配合。拧紧螺栓是一项基本的技术,但在实际操作中,许多工人并不了解正确的拧紧方法,从而导致螺栓松动、连接失效等问题的出现。因此…...

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁

PublishFolderCleaner – Github 测试环境: .Net 8 Program.cs 代码 // https://github.com/dotnet-campus/dotnetcampus.DotNETBuildSDK/tree/master/PublishFolderCleanerusing System.Diagnostics; using System.Text;// 名称, 不用写 .exe var exeName "AbpDemo&…...

[更新]ARCGIS之土地耕地占补平衡、进出平衡系统报备坐标txt格式批量导出工具(定制开发版)

序言 之前开发的耕地占补平衡报备格式,现在之前的基础上集成了耕地进出平衡报备格式导出。 之前版本软件详见:软件介绍 一、软件简介 本软件是基于arcgis二次开发的工具(插件),需要授权后才能使用; 本软件…...

todolist

一开始想自己写个todolist的网页,一直没时间,直接拿这个博客记录了,因为仅我可见比较麻烦,就放在全部可见记录了 目录 2024年3月todoes了解一下深入学习k8s,比如pod运行多个容器 ,编写自己的镜像 2024年2月…...

【Java程序设计】【C00307】基于Springboot的基Hadoop的物品租赁管理系统(有论文)

基于Springboot的基Hadoop的物品租赁管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的基于 Hadoop的物品租赁系统的设计与实现,本系统有管理员、用户二种角色权限; 前台首页&#…...

GIT中对子仓库的使用方法介绍

git 子仓库 主仓库中添加子仓库 git submodule add <url> <path>更新子代码代码 git submodule update --init克隆含有子仓库的仓库 git clone --recurse-submodules <url>主仓库中删除子仓库 1、进入包含子仓库的父仓库的根目录 2、使用以下命令将子仓…...

ClickHouse 指南(三)最佳实践 -- 跳数索引

Data Skipping Indexes Data Skipping Indexes 2 1、简介 影响ClickHouse查询性能的因素很多。在大多数情况下&#xff0c;关键因素是ClickHouse在计算查询WHERE子句条件时是否可以使用主键。因此&#xff0c;选择适用于最常见查询模式的主键对于有效的表设计至关重要。 然…...

Mybatis总结--传参二

#叫做占位符 Mybatis是封装的JDBC 增强版 内部还是用的jdbc 每遇到一个#号 这里就会变为&#xff1f;占位符 一个#{}就是对应一个问号 一个占位符 用这个对象执行sql语句没有sql注入的风险 八、多个参数-使用Param 当 Dao 接口方法有多个参数&#xff0c;需要通过名称使…...

2024年数字化转型风口趋势大赏

人工智能和自动化确实为提高效率和数据驱动的见解提供了巨大的潜力&#xff0c;但这些技术无法完全取代人类技能和情境决策。在混合模型中将人工智能功能与人类专业知识相结合的企业将实现最大的效益。 随着人工智能和自动化的不断发展&#xff0c;企业必须调整其战略、流程和人…...

某款服务器插上4张TDP功耗75瓦PCIE卡无法开机的调试过程

1.服务器厂家说这款服务器测过别家的4卡&#xff0c;所以一开始并没有怀疑服务器硬件有问题 2.拔掉另外三张&#xff0c;只保留cpu0对应的riser0 slot0上的一张卡&#xff0c;仍然无法开机。 3.怀疑是这张pcie卡bar空间太大导致。换另一款bar空间小的卡&#xff0c;仍然无法开…...

数据结构与算法——排序算法

目录 文章目录 前言 一.排序的基本概念 1.什么是就地排序 2.什么是内部排序和外部排序 3.什么是稳定排序 4.判定一个排序算法的是稳定的 二.插入排序算法 1.直接插入排序 1.1基本思想 1.2复杂度 1.3稳定性 1.4代码演示 2.折半插入排序 2.1基本思想 2.2性能 3.…...

阿里巴巴alibaba API商品详情接口系列(商品属性,价格,主图)阿里巴巴alibaba根据ID取商品详情 API 返回值说明

阿里巴巴Alibaba的API商品详情接口系列通常用于获取指定商品的详细信息&#xff0c;包括商品属性、价格、主图等。与来赞达Lazada的API类似&#xff0c;具体的返回值可能会根据API的版本和阿里巴巴平台的更新而有所不同。 以下是一个假设的阿里巴巴API商品详情接口的返回值示例…...

lcd画圆

//****************************************************************** //函数名&#xff1a; _draw_circle_8 //功能&#xff1a; 8对称性画圆算法(内部调用) //输入参数&#xff1a;(xc,yc) :圆中心坐标 // (x,y):光标相对于圆心的坐标 // c:填…...

React组件详解

React组件分为两大类 1.函数组件 2.类组件&#xff08;最常用&#xff09; 组件化 import ReactDom from "react-dom";// // 1.通过函数创建一个组件 // 2.函数名字必须大写开头 // 3.函数必须有返回值 function Func1() {return <h2>这是一个基础组件</h…...

C++面试:内存溢出、内存泄漏的原因与解决

目录 内存溢出&#xff08;Memory Overflow&#xff09; 内存溢出介绍 解决内存溢出问题的方法 内存泄漏&#xff08;Memory Leak&#xff09; 内存泄露基础 解决内存泄漏问题的方法 内存溢出&#xff08;Memory Overflow&#xff09; 内存溢出介绍 内存溢出是指程序在执…...

【Java程序员面试专栏 算法思维】二 高频面试算法题:二分查找

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊二分查找,包括基础二分,寻找目标值的左右边界,搜索旋转数组以及波峰,以及x的平方根问题,所以放到一篇Blog中集中练习 题目关键字解题思路时间空…...

kaldi 详细安装教程、PyTorch-Kaldi、TIMIT下载、Librispeech下载

kaldi 详细安装教程 本kaldi 安装教程 转载于该链接kaldi 详细安装教程 安装系统依赖&#xff08;如果经常使用linux 服务器&#xff0c;一般都会有&#xff09; apt-get updateapt-get install -y --no-install-recommends g make automake autoconf bzip2 unzip wget sox …...

Linux DRM子系统深度解析:如何为240x240 SPI屏编写自定义KMS驱动?

Linux DRM子系统实战&#xff1a;为240x240 SPI屏构建原子化KMS驱动 当一块小巧的240x240 SPI屏幕遇上Linux DRM显示框架&#xff0c;开发者面临的不仅是硬件接口的适配&#xff0c;更是一场关于现代显示架构的深度对话。本文将带您穿透DRM子系统的抽象层&#xff0c;从KMS核心…...

嵌入式软件架构设计:硬件抽象层实践

嵌入式软件架构设计&#xff1a;建立硬件抽象层的工程实践 1. 嵌入式软件架构概述 1.1 架构设计的必要性 在嵌入式系统开发中&#xff0c;软件架构设计直接影响产品的可维护性、可扩展性和可移植性。良好的架构设计能够&#xff1a; 减少不必要的返工 建立宏观层面的开发规…...

财务银行对账费时间?RPA自动对接流水,10分钟对完1个月账

RPA自动化银行对账的优势传统手工对账通常需要财务人员逐笔核对银行流水和企业账目&#xff0c;耗时费力且易出错。RPA&#xff08;机器人流程自动化&#xff09;技术可实现银行流水与企业账务系统的自动对接&#xff0c;大幅提升效率。10分钟完成1个月账目核对已成为现实。RPA…...

【GitHub 加速计划】:解决智能家居插件获取难题的网络适配方案

【GitHub 加速计划】&#xff1a;解决智能家居插件获取难题的网络适配方案 【免费下载链接】integration 项目地址: https://gitcode.com/gh_mirrors/int/integration 在智能家居系统搭建过程中&#xff0c;插件获取往往是用户面临的首要障碍。许多优质的智能家居插件托…...

VMware ESXi 上玩转 SmartX 超融合社区版:OVF 镜像部署全攻略(含网络配置避坑指南)

VMware ESXi 上部署 SmartX 超融合社区版&#xff1a;OVF 镜像实战指南 虚拟化管理员们常常面临一个现实困境&#xff1a;如何在有限的硬件资源下快速体验企业级超融合架构&#xff1f;SmartX 超融合社区版通过 OVF 镜像部署方案&#xff0c;为 VMware ESXi 环境提供了轻量级验…...

别再手动拖拽了!用Mermaid语法+draw.io,5分钟搞定系统设计流程图

从文本到图表&#xff1a;Mermaid与draw.io的高效设计工作流革命 每次系统设计会议后&#xff0c;你是否也经历过这样的场景&#xff1a;白板上密密麻麻的逻辑草图需要转化为电子版&#xff0c;而传统拖拽式绘图工具让你在调整箭头和对齐方框上耗费半小时&#xff1f;作为经历…...

2026年03月27日全球AI前沿动态

一句话总结AI领域覆盖通用/垂直大模型、智能体应用、物理机器人、硬件算力、企业战略、产品更新、投融资、行业观点、民生教育、研究资源全维度&#xff0c;国产技术密集突破、智能体全面落地、硬件自研提速、安全风险频发、老年AI教育落地&#xff0c;行业向实用化、国产化、安…...

从遥控器到智能家居:拆解一个25年前的NEC协议,如何至今仍在‘发光发热’

NEC红外协议&#xff1a;穿越25年的技术生命力与智能家居新应用 当你在智能音箱上说出"打开客厅空调"时&#xff0c;可能正触发着一套诞生于上世纪90年代的技术标准。NEC红外协议这个最初为电视遥控器设计的通信规范&#xff0c;如今仍在全球数以亿计的设备中默默工…...

杰理之人声消除额外保留部分频率声音办法【篇】

将原始声音分为两份&#xff0c;一份走原先的人声消除&#xff0c;另一份走EQ调节 最后输出声音 原先人声消除效果&#xff08;左-右&#xff09; EQ调节后声音...

Linux下RTL8188无线网卡变身AP热点:从驱动安装到自动分配IP全流程(附避坑指南)

Linux下RTL8188无线网卡配置AP热点全攻略&#xff1a;从驱动到自动IP分配的实战指南 在嵌入式开发和物联网应用中&#xff0c;将无线网卡配置为接入点&#xff08;AP&#xff09;是常见需求。RTL8188系列USB无线网卡因其高性价比和广泛兼容性&#xff0c;成为开发者的热门选择。…...