**1.ArrayList:**存储有序,可重复的单一对象.底层采用Object[]存值.
优点:遍历和修改集合中元素效率高.
缺点:按指定的位置添加和删除元素效率低.
**2.LinkedList:**存储有序,可重复的单一对象.底层采用双向链表结构存值.
优点:按指定的位置添加和删除元素效率高.
缺点:遍历集合中元素效率低.
**3.HashSet:**存储无序唯一的单一对象.底层采用HashMap的key存值.
唯一性:通过泛型数据类型重写hashcode()和equals()方法实现的;
**4.TreeSet:**存储无序可排序的唯一的单一对象.底层采用TreeMap的key存值.
可排序性:通过排序器的排序方法返回负数(-1)排在前面,返回正数的排在后面.
唯一性:通过排序器的排序方法返回0去重.
**5.HashMap:**按Key-value方式存值,Key无序的唯一的单一对象.底层采用数组+链表(哈希表)结构存值.
Key的唯一性:通过Key的泛型数据类型重写hashcode()和equals()方法实现的;
**6.TreeMap:**按Key-value方式存值,Key无序可排序的唯一的单一对象.底层采用红黑二叉树存值.
Key的排序性:通过排序器的排序方法返回负数(-1)排在前面,返回正数的排在后面.
Key的唯一性:通过排序器的排序方法返回0去重,Key不存,value覆盖.
7.集合的使用
7.1:如果集合中元素遍历访问比较多,首选ArrayList
7.2:如果集合中元素添加删除比较多,首选LinkedList.
7.3:集合中元素唯一性:首选HashSet
7.3.1:HashSet或HashMap,重写hashcode()和equals()方法实现的;
7.3.2:TreeSet或TreeMap,通过排序器的排序方法返回0去重
7.4:集合中元素既要排序又要保证唯一性:首选TreeSet.
7.4.2:TreeSet或TreeMap,通过排序器的排序方法返回负数(-1)排在前面,返回正数的排在 后面,返回0去重.
7.5:集合中元素的排序性:可以用排序的集合(TreeSet或TreeMap),也可以用其他集合配合工具类中排序方法.