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都可以

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

相关推荐
ss2735 分钟前
Java全栈实战 | 1.3-03 索引原理:联合索引 (a,b,c) 只查 b 走不了索引?B+ 树一图讲透所有索引玄学
java·数据库
电商API_180079052477 分钟前
电商平台数据分析实战_帖子
开发语言·爬虫·python·数据采集·京东
前端初见15 分钟前
Java+AI零基础入门到大牛
java·spring boot·spring·java-ee·intellij-idea
猫猫不是喵喵.18 分钟前
两个不同应用Session能互相访问解决
java
带多刺的玫瑰23 分钟前
Leecode#35刷题之搜索插入位置
java·python·算法
一条泥憨鱼25 分钟前
苍穹外卖【day10| 来电提醒和客户催单】
java·后端·websocket·苍穹外卖
SunnyDays101126 分钟前
Java 设置 Excel 数据验证:整数、日期、文本长度、下拉列表和时间
java·excel·数据验证·下拉列表
编程_大白33 分钟前
@SpringBootTest
java
传奇开心果编程34 分钟前
【Rust入门知识点学与练】第36课:所有权——移动、借用、Copy、切片
开发语言·学习·rust
刘天远1 小时前
Agent最小权限实现:策略表、临时令牌与撤权回归
java·jvm·人工智能·sqlite