Java中常见数据结构
一、 8种数据结构
Java中有8种常见数据结构
- 哈希表(Hash)
- 队列(Queue)
- 树(Tree)
- 堆(Heap)
- 数组(Array)
- 栈(Stock)
- 链表(Linked List)
- 图(Graph)
哈希表(Hash)
哈希表也叫散列表,是一种可以通过关键码值(Key-Value)直接访问的数据结构,可以实现快速查询、插入、删除。
数组类型的数据结构在 插入和删除 时时间复杂度高;链表类型的数据结构在 查询 时时间复杂度高;而哈希表结合了数组与链表的优势。
在jdk8中,Java中经典的HashMap,以 数组+链表+红黑树 构成。
哈希函数在哈希表中起着关键作用,能够将任意长度的输入转为定长的输出(哈希值)。通过哈希函数,能够快速地对数据元素进行定位。
哈希值并不是具有唯一性,在某些情况下Hash值会冲突,HashMap在Hash冲突时,会将元素在数组的位置上添加为链表元素结点,当链表长度大于8时,链表会转换为 红黑树 。
队列(Queue)
类比水管,两端放开,一端入水,一端出水。
队列是一种特殊的线性