了解集合与数据结构(java)

news2024/11/24 19:40:30

什么是数据结构?

数据结构就是 数据+结构, 功能就是描述和组织数据

比如我有10万个QQ号, 我来组织, 有很多种组织方法, 比如链表, 树, 堆, 栈等等. 

假如QQ号要查找数据, 有种数据结构查找数据速度很快, 我们就用它

加入QQ号要进行删除数据, 有种数据结构删除速度很快, 我们就用它,

数据结构就是我们描述和组织数据的一种工具, 我们需要了解每一种数据结构的特点, 并且熟练使用它.

什么是集合?

java会把一些数据结构封装起来,你想要一个链表, java里面有一个类专门表示链表, 你想要一棵树, java中有一个结构表示数, 这就叫做集合, C++里面叫做STL.

既然java帮我们实现好了, 我们为什么还要学习呢? 我们要知其然还要知其所以然, 这样才算真正学会了, 否则只能算是一知半解.

java集合框架

java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes.了解集合框架可以更深入的了解数据结构.

下图只描述了一部分集合框架:

4个重要接口, 分别是List, Queue, Set, Map. 其他的类实现了这些接口

stack 是栈,  ArrayList动态数组(顺序表),  LinkedList双向链表(队列),  PriorityQueue优先级队列

TreeSet 和 TreeMap 底层是一棵红黑树

HashSet 和 HashMap 底层是哈希表(数组+链表+红黑树)

如何学习?

多思考,

多动手, 如:画画图, 写写博客.

多练习, 刷刷题.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1651577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编程入门(六)【Linux系统基础操作三】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀LInux的进程管理和磁盘管理top命令显示查看进…

【CTS :testExtensionAvailability】

【CTS】android.hardware.camera2.cts.CameraExtensionCharacteristicsTest#testExtensionAvailability 报错: java.lang.AssertionError: Extensions system property : true does not match with the advertised extensions: false expected: but was: 通过对这…

idea Maven 插件 项目多环境打包配置

背景 不同环境的配置文件不一样,打包方式也有差异 1. 准备配置文件 这里 local 为本地开发环境 可改为 dev 名称自定义 test 为测试环境 prod 为生产环境 根据项目业务自行定义 application.yml 配置: spring:profiles:#对应pom中的配置active: spring.…

VMware虚拟机中ubuntu使用记录(5)—— 如何在ubuntu中安装USB相机ros驱动并获取usb摄像头数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、ROS下USB相机驱动1.准备工作(1) 下载驱动(2) 创建ROS工作空间 2. 安装usb_cam驱动(1) 安装usb_cam驱动包(2) 编译代码 3. 修改usb_cam驱动的配置文件(1) 查看US…

电商大数据的采集||电商大数据关键技术【基于Python】

.电商大数据采集API 什么是大数据? 1.大数据的概念 大数据即字面意思,大量数据。那么这个数据量大到多少才算大数据喃?通常,当数据量达到TB乃至PB级别时,传统的关系型数据库在处理能力、存储效率或查询性能上可能会遇…

深度剖析Comate智能产品:科技巧思,实用至上

文章目录 Comate智能编码助手介绍Comate应用场景Comate语言与IDE支持 Comate安装步骤Comate智能编码使用体验代码推荐智能推荐生成单测注释解释注释生成智能问答 Comate实战演练总结 Comate智能编码助手介绍 市面上现在有很多智能代码助手,当时互联网头部大厂百度也…

泰克MSO64示波器的应用

泰克MSO64示波器是一款功能强大、多用途的数字示波器,具备高性能和灵活的测量功能,适用于各种应用场景。它不仅具备传统示波器的功能,还集成了逻辑分析仪的功能,能够同时观测和分析模拟和数字信号。下面将介绍泰克MSO64示波器在几…

一文读懂 SOLID 原则

大家好,我是孔令飞,字节跳动云原生开发专家、前腾讯云原生技术专家、云原生实战营 知识星球星主、《企业级 Go 项目开发实战》作者。欢迎关注我的公众号【令飞编程】,Go、云原生、AI 领域技术干货不错过。 在 Go 项目开发中,你经常…

【快捷部署】024_Hive(3.1.3)

📣【快捷部署系列】024期信息 编号选型版本操作系统部署形式部署模式复检时间024Hive3.1.3Ubuntu 20.04tar包单机2024-05-07 一、快捷部署 #!/bin/bash ################################################################################# # 作者:cx…

【C++题解】1383. 奶牛和草丛

问题:1383. 奶牛和草丛 类型:深度搜索 题目描述: 奶牛Bessie计划好好享受柔软的春季新草。新草分布在 R 行 C 列的牧场里。它想计算一下牧场中的草丛数量。 在牧场地图中,每个草丛要么是单个“#”,要么是有公共边的相…

powershell 注册全局热键——提升效率小工具

powershell 注册全局热键 01 前言 在处理一些重复工作问题的时候,想搞一个小工具,配合全局快捷键来提高效率。因为是Windows系统,想到C#,但是又不想用VS开发,因为那样不够灵活,没办法随时修改随时用&…

构建 WebRTC 一对一信令服务器

构建 WebRTC 一对一信令服务器 构建 WebRTC 一对一信令服务器前言为什么选择 Nodejs?Nodejs 的基本原理浏览器使用 Nodejs安装 Nodejs 和 NPMsocket.io信令服务器搭建信令服务器客户端服务端启动服务器并测试 总结参考 构建 WebRTC 一对一信令服务器 前言 我们在学…

一文读懂三维点云分割

点击下方卡片,关注“小白玩转Python”公众号 什么是点云分割? 点云是世界的一种非结构化三维数据表示,通常由激光雷达传感器、立体相机或深度传感器采集。它由一系列单个点组成,每个点由 x、y 和 z 坐标定义。 自动驾驶模型的点云…

达梦数据库导入数据问题

进行数据导入的时候遇到了导入数据问题 第一个问题: 该工具不能解析此文件,请使用更高版本的工具 这个是因为版本有点低,需要下载最新的达梦数据库 第二个问题: (1)本地编码:PG_GBK, 导入文…

【JavaEE 初阶(三)】多线程代码案例

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多线程知识 目录 1.前言2.单例模式2.1饿汉方式2.2饿汉方式 3.阻塞队列3.1概念3.2实现 4.定时器4.1概念4.…

js原生写一个小小轮播案例

先上示例&#xff1a; 附上代码 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content…

西奥CHT-01软胶囊硬度测试仪:重塑行业标杆,引领硬度测试新纪元

西奥CHT-01软胶囊硬度测试仪&#xff1a;重塑行业标杆&#xff0c;引领硬度测试新纪元 在当今医药领域&#xff0c;软胶囊作为一种广泛应用的药品剂型&#xff0c;其品质的稳定性和安全性直接关系到患者的健康。而在确保软胶囊品质的各项指标中&#xff0c;硬度测试尤为关键。…

Bookends for Mac v15.0.2 文献书籍下载管理

Bookends Mac版可以轻松地将其导入参考 &#xff0c;并直接搜索和进口从数以百计的线上资料来源。Bookends Mac版使用内置在浏览器中下载参考与PDF格式的文件&#xff0c;或和/或网页的点击。 Bookends for Mac v15.0.2注册激活版下载 本文由 mdnice 多平台发布

云密码机的定义与特点

云密码机&#xff0c;作为云计算环境中保障数据安全的关键设备&#xff0c;其重要性不言而喻。它基于虚拟化技术&#xff0c;通过提供高性能的数据加解密、密钥管理等服务&#xff0c;确保云上数据的安全与隐私。下面&#xff0c;安策科技将从云密码机的定义、特点、应用场景以…

JAVA中的线程、死锁、异常

线程 Thread 一、程序 1&#xff0e;一段静态代码&#xff08;静态&#xff09; 二、进程 1&#xff0e;动态的&#xff0c;有开始&#xff0c;有结束&#xff1b;2&#xff0e;程序的一次执行过程&#xff0c;3&#xff0e;操作系统调度分配资源的最小单位&#xff1b; 三、…