我了解的java中常见的数据结构

简介: 本内容介绍了常见的数据结构,包括线性结构(如动态数组、链表、栈、队列)和非线性结构(如优先级队列、哈希表、红黑树、跳表、B+树),并结合 Java 中的具体实现(如 ArrayList、LinkedList、PriorityQueue、HashMap、TreeMap 等)说明其特点与应用场景。

线性结构

  • 动态数组:相对于普通数组可以扩容
  • java 中 ArrayList 就属于动态数组
  • 数组的特点是其中元素是连续存储的
  • 链表:由多个节点链在一起
  • java 中的 LinkedList 就属于链表
  • 链表的特点是其中元素是不连续存储的,每次需要根据当前节点,才能找到相邻节点
  • 栈:符合 First In Last Out(先进后出)规则
  • java 中的 LinkedList 可以充当栈
  • 它的 push 方法向栈顶添加元素
  • 它的 pop 方法从栈顶移除元素
  • 它的 peek 方法从栈顶获取元素(不移除)
  • 队列:符合 First In First Out(先进先出)规则
  • java 中 LinkedList 也可以充当队列
  • 它的 offer 方法用来向队列尾部添加元素(入队)
  • 它的 poll 方法用来从队列头部移除元素(出队)

非线性结构

  • 优先级队列:在队列基础上增加了优先级,队列会根据优先级调整元素顺序,保证优先级高的元素先出队
  • java 中 PriorityQueue 可以作为优先级队列
  • 它底层用大顶堆或小顶堆来实现
  • 它适用于实现排行榜、任务调度等编码
  • 它特别适合于流式数据的处理,利用它能够大大节省内存
  • Hash 表(哈希表,也叫散列表):由多对 key - value 组成,会根据 key 的 hash 码把它们分散存储在数组当中,其中 key 的 hash 码与数组索引相对应
  • java 中的 HashMap,Hashtable 都属于哈希表
  • 它特别适用于实现数据的快速查找
  • 红黑树:可以自平衡的二叉查找树,相对于线性结构来说,拥有更好的性能
  • java 中的 TreeMap 属于红黑树
  • 跳表:多级链表结构,也能达到与红黑树同级的性能,且实现更为简单
  • java 中的 ConcurrentSkipListMap 用跳表结构实现
  • redis 中的 SortedSet 也是用跳表实现
  • B+ 树:可以自平衡的 N 叉查找树
  • 关系型数据库的索引常用 B+ 树实现
相关文章
|
SQL 存储 Oracle
Oracle 面试题及答案整理,最新面试题
Oracle 面试题及答案整理,最新面试题
1529 0
|
消息中间件 存储 RocketMQ
Rocketmq如何保证消息不丢失
文章分析了RocketMQ如何通过生产者端的同步发送与重试机制、Broker端的持久化存储与消息重试投递策略、以及消费者端的手动提交ack与幂等性处理,来确保消息在整个传输和消费过程中的不丢失。
|
安全 数据安全/隐私保护 芯片
简单认识加扰与解扰
简单认识加扰与解扰
1002 0
|
Kubernetes Cloud Native 应用服务中间件
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
863 0
|
10月前
|
JavaScript 前端开发 安全
TypeScript 与 ArkTS 全面对比:鸿蒙生态下的语言演进
本文深入对比TypeScript与华为鸿蒙原生语言ArkTS,从类型系统、UI开发、性能优化到生态定位,全面解析二者差异。ArkTS基于TS演进,面向操作系统层级重构,具备强类型安全、声明式UI、AOT编译与分布式能力,助力“一次开发,多端部署”。结合10亿鸿蒙设备爆发趋势,为开发者提供技术选型指南与平滑迁移路径,是进军全场景智慧生态的关键钥匙。(238字)
1206 1
|
NoSQL IDE 开发工具
使用Clion优雅的完全远程自动同步和远程调试c(下)
使用Clion优雅的完全远程自动同步和远程调试c(下)
使用Clion优雅的完全远程自动同步和远程调试c(下)
|
9月前
|
架构师 Java 数据库
Java开发进阶:从初级工程师到架构师的能力提升路径
Java开发者从初级到架构师需经历技术与软实力的全面提升。本文梳理各阶段能力要求:夯实基础、掌握主流框架、深入分布式技术、培养系统设计与业务洞察力,助力开发者明确职业进阶路径,成长为具备全局视野的技术领导者。
|
8月前
|
人工智能 算法 数据处理
阿里云AI大模型免费使用:百炼7000万Tokens和人工智能PAI平台免费体验
阿里云2026年大模型免费福利:百炼平台送7000万Tokens+100张生图,PAI平台提供500元算力券,覆盖文本、图像、视频生成与AI Agent开发,零成本构建智能应用,新用户实名即享,立即开通体验!
|
安全 物联网
零压力了解 LoRA 微调原理
`LoRA` 全称为 `Low-Rank Adaptation`,翻译成中文就是`低秩适配`。⊙﹏⊙ 是不是一头雾水?没关系,相信我,看完下文你就会明白个大概了
905 0
零压力了解 LoRA 微调原理
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
1342 6
【Java学习】多线程&JUC万字超详解