一.数据结构:
1.定义:数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
2.常见类型:
数组Array、栈stack、队列queue、链接LinkedList、树Tree、哈希表、堆heap、图graph
3.区别:主要有四个方面,【底层(数组、链表、树)、是否线程安全、是否有序、值是否唯一】
大多数底层都是(数组+链表)
线程安全:vector、hashTable、ConcurrentHashMap
有序:vector、LinkedList、ArrayList、treeSet、treeMap
值唯一:hashSet、treeSet、值不能为空hashTable
4.hashMap:底层为数组、链表、(黑红)树【链表长度大于8时,转换为树】,通过唯一key,经过hashcode()与equals()方法确定具体存储位置。
5.hashMap、hashTable、ConcurrentHashMap:
a.hashTable、ConcurrentHashMap线程安全,需要线程安全时,建议使用ConcurrentHashMap
b.锁分段技术:首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。
Hashtable中采用的锁机制是一次锁住整个hash表,从而在同一时刻只能由一个线程对其进行操作;
而ConcurrentHashMap中则是一次锁住一个桶。
Conc