数组: 长度是固定的,有索引,查询快
链表:每个节点都存储着数据和指向下个节点的指针,增删快
collection集合:
List集合:
-ArrayList: 数组数据结构,线程不安全,初始长度是10,每次扩容1.5倍
-linkedList: 双向链表结构,无初始容量和扩容机制,插入删除较快
-Vector: 数组数据结构,线程安全,但是非常慢,不经常使用
Set集合:
-HashSet: HashSet在new的时候,实际上是new了一个HashMap集合,初始容量是16,扩容后是原来的二倍
-TreeSet: 属于二叉树结构,底层是new了一个TreeMap集合
Map集合:
-HashMap: 底层是数组+链表,jdk1.8之后,当单向链表长度大于8,数组长度大于64,就会变成红黑树结构,当红黑树的节点小于6时,又会变回链表,当容量占用超过3/4,就会扩容,扩容2倍
-SortedMap: 二叉树结构,key可以根据大小自动排序
-HashTable: key和value只能存储String类型



