原文作者:feiyanaffection
原文地址:java集合超详解
目录
1、集合与数组的区别
数组 | 集合 | |
---|---|---|
长度区别 | 容量固定不可以动态改变 | 容量可以动态改变 |
内容区别 |
|
|
2、集合大纲
1)Collection部分的框架图
2)完整的集合框架图
3、常用集合的分类
Collection 接口:对象的集合(单列集合) | List 接口:元素按进入先后有序保存,可重复 | LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全 | |
ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全 | |||
Vector 接口实现类 数组, 同步, 线程安全 | |||
Set 接口:不可重复,并做内部排序 | HashSet:使用hash表(数组)存储元素 | LinkedHashSet:链表维护元素的插入次序 | |
TreeSet:底层实现为红黑树树,元素排好序 | |||
Queue 接口:FIFO队列 | ArrayDeque:基于数组实现的双端队列 | ||
LinkedList:基于链表实现的双端队列 | |||
Map 接口:键值对的集合 (双列集合) | Hashtable:同步, 线程安全 | ||
HashMap:非同步, 线程不安全 | LinkedHashMap:双向链表和哈希表实现 | ||
TreeMap:红黑树对所有的key进行排序 |
3、Collection集合的方法
boolean add(E e);//
boolean remove(Object o);
void clear();
boolean contains(Object o);
boolean isEmpty();
int size();
boolean addAll(Collection c);
//返回一个包含了本类集中所有元素的数组,数组类型为Object[]
Object[] toArray();
Iterator iterator();