1.ArrayList:存储有序,可重复的单一对象.底层采用Object[]存值.
优点:遍历集合和修改集合中元素效率高.
缺点:添加和删除指定索引处的元素效率低.
2.LinkedList:存储有序,可重复的单一对象.底层采用双向链表结构存值.
优点:添加和删除指定索引处的元素效率高.
缺点:遍历集合和修改集合中元素效率低;
3.HashSet:存储无序,唯一(不可重复)的单一对象.底层采用HashMap的Key存值.
优点:唯一性(去重).
唯一性:通过HashSet泛型类型中重写hashCode()和equals()来实现去重保证唯一性.
4.TreeSet:存储无序但是可排序,唯一(不可重复)的单一对象.底层采用
TreeMap的Key存值.
注意:TreeSet一定要用排序器.如果用无参构造创建TreeSet集合,默认用的是自然排序器
要求TreeSet泛型类型中实现自然排序器接口,重写排序方法.如果TreeSet想用自定义排序器,就得将自定义排序器的对象作为TreeSet构造方法的参数传入(第一种:用匿名内部类实现自定义排序器对象;第二种先声明类实现自定义排序器接口,重写排序方法,再创建对象).
优点:唯一性(去重),可排序.
可排序性:通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.
唯一性:通过排序器的排序方法返回0表示相同元素不存来实现的.
5.HashMap:按Key-value对来存值.HashMap的Key无序的,唯一的单一对象.底层采用数组+链表 (哈希表)结构存值.
Key的唯一性:通过HashMap的Key泛型类型中重写hashCode()和equals()来实现去重 保证唯一性.
6.TreeMap:按Key-value对来存值.TreeMap的Key无序的可排序,唯一的单一对象.底层采用
红黑二叉树结构存值.
注意:TreeMap一定要用排序器.如果用无参构造创建TreeMap集合,默认用的是
自然排序器要求TreeMap的Key泛型类型中实现自然排序器接口,重写排序方法.
如果TreeMap想用自定义排序器,就得将自定义排序器的对象作为TreeMap构造
方法的参数传入(第一种:用匿名内部类实现自定义排序器对象;第二种先声明类
实现自定义排序器接口,重写排 序方法,再创建对象).
Key的可排序性:通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.
Key的唯一性:通过排序器的排序方法返回0表示相同元素Key不存value覆盖来实现的.
7.能实现唯一性(去重)的集合有HashSet,HashMap,TreeSet,TreeMap都可以实现,只是原理不同.HashSet和HashMap通过重写hashCode()和equals()来实现的;TreeSet,TreeMap通过排序器的排序方法返回0来实现的.
8.能实现排序的集合有TreeSet,TreeMap,它们都是通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.
9.要存多个相同类型数据,遍历比较多,首选ArrayList集合. 10.要存多个相同类型数据,添加和删除元素比较多,首选LinkedList集合. 11.要存多个相同类型数据,要保证元素不重复(唯一性),首选HashSet集合, TreeSet,HashMap,TreeMap也可以实现. 12.要存多个相同类型数据,要保证元素不重复(唯一性)的同时还要排序,首选TreeSet集合, TreeMap集合也可以实现.
|