Java数据结构(一):初识集合框架

🌸雨落在了我的手上:个人主页

🐟个人仓库:Gitee仓库

❄️ 个人专栏:<<JaveSe>> <<C语言>> <<C语言数据结构>>

🔥🔥🔥人生格言:无人扶我青云志,我自踏雪至山巅

🎬 博主简介:

目录

一:什么是集合框架

二:集合框架的重要性

1.开发中的使⽤

2.笔试及⾯试题

三:背后所涉及的数据结构以及算法

1.什么是数据结构

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

3.相关java知识

4.什么是算法

5.如何学好数据结构以及算法


内容大纲:

Java集合框架是定义在java.util包下的接口和实现类,用于高效存储和管理元素组,如扑克牌、邮箱等。框架重要性体现在开发便捷性、代码高效性及面试考点上。主要容器对应不同数据结构:List(ArrayList动态数组/LinkedList双向链表)、Stack栈、Queue队列、Set(HashSet哈希桶/TreeSet红黑树)、Map(HashMap哈希桶/TreeMap红黑树)。学习需掌握泛型、装箱拆箱等Java知识,并通过画图、博客、刷题(牛客/LeetCode)深入理解数据结构与算法。核心是实践与总结。

一:什么是集合框架

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

其主要表现为将多个元素element 置于⼀个单元中,⽤于对这些元素进⾏快速、便捷的存储store 、检索 retrieve 、管理 manipulate,即平时我们俗称的增删查改 CRUD

例如,⼀副扑克牌(⼀组牌的集合)、⼀个邮箱(⼀组邮件的集合)、⼀个通讯录(⼀组姓名和电话的映射关 系)等等。

二:集合框架的重要性

1.开发中的使⽤

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

2.笔试及⾯试题

三:背后所涉及的数据结构以及算法

1.什么是数据结构

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

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

该阶段,我们主要学习以下容器,每个容器其实都是对某种特定数据结构的封装,⼤概了解⼀下,后 序会给⼤家详细讲解并模拟实现:

  1. Collection:是⼀个接⼝,包含了⼤部分容器常⽤的⼀些⽅法

  2. List:是⼀个接⼝,规范了ArrayList和LinkedList中要实现的⽅法

  • ArrayList:实现了List接⼝,底层为动态类型顺序表
  • LinkedList:实现了List接⼝,底层为双向链表
  1. Stack:底层是栈,栈是⼀种特殊的顺序表

  2. Queue:底层是队列,队列是⼀种特殊的顺序表

  3. Deque:是⼀个接⼝

  4. Set:集合,是⼀个接⼝,⾥⾯放置的是K模型

  • HashSet:底层为哈希桶,查询的时间复杂度为O(1)
  • TreeSet:底层为红⿊树,查询的时间复杂度为O(),关于key有序的
  1. Map:映射,⾥⾯存储的是K-V模型的键值对
  • HashMap:底层为哈希桶,查询时间复杂度为O(1)
  • TreeMap:底层为红⿊树,查询的时间复杂度为O(),关于key有序

3.相关java知识

  1. 泛型 Generic
  2. ⾃动装箱 autobox 和⾃动拆箱 autounbox
  3. Object 的 equals ⽅法
  4. Comparable 和 Comparator 接口

4.什么是算法

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

5.如何学好数据结构以及算法

  • 死磕代码,磕成这样就可以了
  • 注意画图和思考
  • 多写博客总结
  • 多刷题
  • ⽜客⽹和LeetCode都可以

以上就是我们的全部内容了!!!!

相关推荐
半亩码田9 分钟前
C#转Python第3.6篇:Python 的 @property 比 C# 的 get/set 更灵活
java·python·c#
老郑聊AI业财智造23 分钟前
Spring AI 技术架构与源码分析
java·人工智能·后端·spring·架构·软件工程
程序员与背包客_CoderZ24 分钟前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb
省长28 分钟前
别人绕过我的网关直接调用资源服务怎么办?使用 Sa-Token 解决:网关转发鉴权、RPC调用鉴权
java·后端·开源
MetaLite30 分钟前
SpringBoot异常处理-到底该转换还是继续抛-入口层与调用层不能一刀切
java·spring boot·后端
钱栈up34 分钟前
Mac 开发机一键发版不用切环境:我这样改造了团队的后端部署脚本Maven编译卡住20分钟?我靠两步定位到2处隐蔽编译错误
开发语言·python·macos
william_yangshun38 分钟前
【大模型部署实战】kimi-k3-in-c 中文版:用 176KB 纯 C99 引擎在 CPU 上跑 Kimi K3 上手指南
c语言·开发语言
Sagittarius_A*1 小时前
Burst Lab | PHP 审计 14|反序列化(四):字符串逃逸与绕过技巧
开发语言·安全·php·web·反序列化
名字还没想好☜1 小时前
Go 用 slices/maps 标准库泛型函数:告别手写 Contains、Sort、去重(Go 1.21)
开发语言·后端·算法·golang·go
淼澄研学1 小时前
Python实战:基于LangChain与Chroma构建企业级RAG知识库问答系统
开发语言·python·langchain