集合可以理解为 有序 无序 排序 三种
有序 插入的顺序 即为遍历时的顺序
无序 遍历时的顺序无法确定
排序 插入后进行排序
常见的集合有些那
Collcetion和Map是所有集合的父接口
1.Collcetion接口实现类:Set和List
Set 接口主要实现类有 HashSet TreeSet LinkedHashSet
List接口主要实现类有 ArrayList LinkedList Stack Vcetor
2.Map接口主要实现类有 HashMap HashTable TreeMap ConcurrentHashMap Properties等
Set和List:
List 和 Set 是储存单列的数据集合,都继承与Collcetion;
List 中存储的数据是有序的,保证了输出元素的顺序就是插入元素的顺序,可以插入多个null值元素,可以重复
Set 中存储的数据是无序的,无法保证元素的储存顺序,可以插入一个null值元素 ,不可以重复
ArrayList 特点:底层数据结构为数组,查询块,增删慢,线程不安全,效率高
LinkedList特点: 底层数据结构为链表,查询慢,增删块,线程不安全
vector,特点:底层数据结构为数组,查询块,增删慢,线程安全,效率低
HashSet特点:为了快速查找设置的set 依赖与 hashCode()和equals()方法保证元素的唯一性
TreeSet 特点: : 底层为树结构,保证元素处于排序状态,元素必须实现Comparable接口
LinkedHash特点:底层为链表结构,插入顺序即为遍历顺序
Map:
HashTbal特点:继承自Dictionary 是线程安全的 key和value 都不允许为null,不指定容量的情况下,默认容量为11,扩容时,将容量变为原来的2倍加1
HashMap特点:基于散列表实现,线程不安全,遍历顺序,取得 键值对 的开销是固定改的,可以通过构造器设置容量和负载因子,控制容器的性能。默认容量为16,扩容时将容量变为原来的2倍 如果想让HashMap 加锁 Map m=Conllections.synchronizedMap(new HashMap());
LinkedHashMap特点:类似HashMap 遍历顺序 取得" 键值对"为插入顺序,或是最少使用的(LRU)次序,比HashMap慢一点。而在迭代访问时更快,因为他使用链表维护内部次序。
TreeMap特点 是SortedMap现阶段唯一实现,基于红黑树实现,查看“键"或者"键值"对时,他们会被排序(次序由,Comparable 和 Comparator决定),TreeMap的特点在于,所得到的结果是经过排序