java jdk中使用到的数据结构
来源:互联网 发布:淘宝考研试卷网怎么样 编辑:程序博客网 时间:2024/06/06 00:14
在java中可能很多人都会忽略数据结构(类似树,跳跃表等),大家都比较熟悉链表,数组,栈,队列,哈希表等。最近看了jdk中关于树和跳跃表等的实现,其实数据结构真的是基础,有兴趣的java程序员可以翻开jdk的代码仔细阅读下面几种数据结构的学习。
TreeMap: 红黑树 http://v.163.com/movie/2010/12/9/J/M6UTT5U0I_M6V2TJ49J.html 这里有网易公开课的教学视频
PriorityQueue:最小堆 比较简单的一种实现,queue[n]的左右儿子是queue[2*n+1]和queue[2*n+2],每次根据排序类取第一个queue[0],然后把queue[size-1]作为树跟执行siftDown,插入的时候是直接赋值queue[size]=alue,然后再执行siftUp操作。
ConcurrentSkipListMap:跳跃表实现 http://v.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html 有意思的是每次插入一个键值对之后,都是根据随机值更新这个结点的索引结点。
ArrayList:数组实现,每次需要扩增容量是int newCapacity = oldCapacity + (oldCapacity >> 1) ,最简单的实现了,也比较常用了。
HashMap: 哈希表 冲突解决方法就是链表了。不知到有没有其他数据结构是用线性查找法等其他冲突解决方法。
HashSet:内部使用的是Hashap来处理重复元素去除的,比较简单实用的方法。
LinkedHashMap :单向链表实现了
LinkedHashSet: 内部使用LinkedHashMap
LinkedList:双向链表实现
ArrayDeque :队列,其实也是数组,加上头尾索引
Stack:栈 也是用数组来模拟栈
在java中有什么其他的数据结构欢迎大家多多留言,后续我看到也会再做整理。
TreeMap: 红黑树 http://v.163.com/movie/2010/12/9/J/M6UTT5U0I_M6V2TJ49J.html 这里有网易公开课的教学视频
PriorityQueue:最小堆 比较简单的一种实现,queue[n]的左右儿子是queue[2*n+1]和queue[2*n+2],每次根据排序类取第一个queue[0],然后把queue[size-1]作为树跟执行siftDown,插入的时候是直接赋值queue[size]=alue,然后再执行siftUp操作。
ConcurrentSkipListMap:跳跃表实现 http://v.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html 有意思的是每次插入一个键值对之后,都是根据随机值更新这个结点的索引结点。
ArrayList:数组实现,每次需要扩增容量是int newCapacity = oldCapacity + (oldCapacity >> 1) ,最简单的实现了,也比较常用了。
HashMap: 哈希表 冲突解决方法就是链表了。不知到有没有其他数据结构是用线性查找法等其他冲突解决方法。
HashSet:内部使用的是Hashap来处理重复元素去除的,比较简单实用的方法。
LinkedHashMap :单向链表实现了
LinkedHashSet: 内部使用LinkedHashMap
LinkedList:双向链表实现
ArrayDeque :队列,其实也是数组,加上头尾索引
Stack:栈 也是用数组来模拟栈
在java中有什么其他的数据结构欢迎大家多多留言,后续我看到也会再做整理。
- java jdk中使用到的数据结构
- DSR中使用到的主要数据结构
- 【Java基础之二】JDK中使用到的23个经典设计模式
- JDK中使用到的23个经典设计模式
- JDK中使用到的23个经典设计模式
- JDK中使用到的23个经典设计模式
- linux中platform_bus_type注册使用到的数据结构和函数
- 在 JDK 早期版本中使用 Java 5 的语言
- java jdk工具类中UUID的使用
- java数据结构学习感悟之java中指针的使用
- JDK中Jconsole的使用
- JDK中Jconsole的使用
- JDK中Jconsole的使用
- 《JAVA中JDK的配置》
- java中JDK的安装
- Java中JDK的区别
- 爬虫中使用的数据结构
- Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性
- VID PVID
- 内核编译时, 到底用make clean, make mrproper还是make distclean
- 什么是Servlet,Servlet的生命周期、servletconfig、servletContext
- AJAX回调函数内部给全局变量赋值的问题与解决
- 伤感日志:时光远走,流年轻度
- java jdk中使用到的数据结构
- android启动过程配置文件的解析与语法
- iPad2 iOS5.1.1完美越狱教程(Absinthe2)
- [WCF]NetTcpBinding在IIS中使用的详细配置方法
- Windows 声音处理编程(基于winmm.dll)(2)
- JS__jQuery和Discuz js冲突解决办法
- java中成员变量和局部变量的区别
- hdoj_2138How many prime numbers
- linux 指定动态库路径