博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java jdk中使用到的数据结构
阅读量:5119 次
发布时间:2019-06-13

本文共 791 字,大约阅读时间需要 2 分钟。

在java中可能很多人都会忽略数据结构(类似树,跳跃表等),大家都比较熟悉链表,数组,栈,队列,哈希表等。最近看了jdk中关于树和跳跃表等的实现,其实数据结构真的是基础,有兴趣的java程序员可以翻开jdk的代码仔细阅读下面几种数据结构的学习。
TreeMap: 红黑树  
  这里有网易公开课的教学视频
PriorityQueue:最小堆  比较简单的一种实现,queue[n]的左右儿子是queue[2*n+1]和queue[2*n+2],每次根据排序类取第一个queue[0],然后把queue[size-1]作为树跟执行siftDown,插入的时候是直接赋值queue[size]=alue,然后再执行siftUp操作。 
ConcurrentSkipListMap:跳跃表实现 
  有意思的是每次插入一个键值对之后,都是根据随机值更新这个结点的索引结点。
ArrayList:数组实现,每次需要扩增容量是int newCapacity = oldCapacity + (oldCapacity >> 1) ,最简单的实现了,也比较常用了。
HashMap: 哈希表  冲突解决方法就是链表了。不知到有没有其他数据结构是用线性查找法等其他冲突解决方法。
HashSet:内部使用的是Hashap来处理重复元素去除的,比较简单实用的方法。
LinkedHashMap :单向链表实现了
LinkedHashSet: 内部使用LinkedHashMap
LinkedList:双向链表实现  
ArrayDeque :队列,其实也是数组,加上头尾索引
Stack:栈 也是用数组来模拟栈
在java中有什么其他的数据结构欢迎大家多多留言,后续我看到也会再做整理。

转载于:https://www.cnblogs.com/zhwj184/archive/2012/11/02/3027457.html

你可能感兴趣的文章
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>
继承条款effecitve c++ 条款41-45
查看>>
HTML+CSS学习笔记(九)
查看>>
Java泛型的基本使用
查看>>
1076 Wifi密码 (15 分)
查看>>
rsync
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
【转载】Linux screen 命令详解
查看>>
background-clip,background-origin
查看>>
Android 高级UI设计笔记12:ImageSwitcher图片切换器
查看>>
Blog文章待看
查看>>