Iterator
主要用于遍历
Collection
为以下接口以及实现类提供公用方法
* @see Set
* @see List
* @see Map
* @see SortedSet
* @see SortedMap
* @see HashSet
* @see TreeSet
* @see ArrayList
* @see LinkedList
* @see Vector
* @see Collections
* @see Arrays
* @see AbstractCollection
继承或者实现此结构的数据结构都是一个一个取值
List
ArrayList
//有序 线程不安全 List 查询时间复杂度低 增删改时间复杂度高 最常用 数据结构数组
LinkedList
//有序 线程不安全 List 查询时间复杂度过高 增删改时间复杂度低 数据结构链表
Vector
//最早的List
//内部方法带synchronized 属于线程安全
//但是效率比较低 基本上不使用
//java 1.0版本
Stack
//包含栈的特性 先进后出(栈) 线程安全 继承于Vector
CopyOnWriteArrayList
//线程安全 读写分离 的List 每次写完数据后都会内部复制一份用来读。读的时候不用加锁
//为多线程并发提供
Set
HashSet
LinkedHashSet
SortedSet
TreeSet
EnumSet
CopyOnWriteArraySet
ConcurrentSkipListSet
Queue
//主要为Java并发提供。线程安全。先进先出
Deque
//双向队列 线程安全
ArrayDeque
//offer 加入队列
//peek 取出,但是不删除队列中的内容
//poll 取出,并删除队列中的内容
BlockingDeque
LinkedBlockingDeque
BlockingQueue
//此接口为阻塞队列
//offer 加入队列。类似于add
//poll 取出数据,队列并删除
//peek 取出数据,队列不删除数据
ArrayBlockingQueue
//有界队列。 同样有阻塞方法
PriorityBlockingQueue
LinkedBlockingQueue
//put 加入数据,容器填满以后阻塞
//take 取出如果为null会阻塞
//本队列是无界队列。一直装到内存满为止
TransferQueue
LinkedTransferQueue
//等在队列执行完。再去干某件事,比如支付完给客户返回
SynchronousQueue
专门用来线程传递数据的队列,最大只能放一个值
PriorityQueue
ConcurrentLinkedQueue
DelayQueue
//延迟队列
Map
继承map 的所有都是键值对 类似于entry
Hashtable
jdk1.0
线程安全的Map
synchronized实现
HashMap
相关链接:https://blog.csdn.net/liuerchong/article/details/118463930
//线程不安全
//键值对
//无序
//JDK1.7之前使用头插法、JDK1.8使用尾插法
//JDK1.7之前使用数组+链表、JDK1.8优先使用数组+链表,当链表长度超过8时并且map长度大于64时,链表转换为红黑树。
//每次内容达到0.75时扩容
//初是大小为16。 每次扩容为2倍
//Key不可以重复