**
集合
**
三大集合:
List:按下标对数据进行排序.
Set:按下标进行排序,数据不可重复
Map:用键值对对数据进行1对1或1对多查找.(键不能重复)
1.ArrayList,Vector,LinkedList的差异:
List:ArrayList与Vector都是使用数组方式存储数据的,数组元素数大于实际存储元素数以便插入元素;
索引比插入快,Vector是synchronized方法,所有线程安全,性能比ArrayList差;LinkedList采用双向链,索引时需要进行前向或后向遍历,但插入只需要记录本项数据的前后项即可,所以插入比索引快.LinkedList更占内存,因为为每一个节点存储两个引用.
2.Collection与Collections的区别:
Collection:是集合类的上级接口,继承与他的接口主要有Set和List
Collections:是集合类的一个帮助类,提供一系列的静态方法实现对各种集合的排序,安全化,搜索等.
最常用的集合类:List和Map.
List具体实现包括ArrayList和Voctor,是可变大小的列表,适合构建,存储和操作任何类型对象的元素列表.List适用于按数值索引访问元素的形式.
Map提供了一个更加通用的存储方法.Map采用键值对存储,其中每个键映射一个值
3.HashMap与Hashtable的区别:
HashMap允许键和值都为null,Hashtable不允许;
Hashtable是同步的,因此HashMap更适合单线程,Hashtable适合多线程;
HashMap提供了可供应用迭代的键的集合,因此,HashMap是快速失败的.
lterator和Listlterator:
Listlterator实现了lterator的接口,并包含其他功能;lterator可用来遍历Ser和List,对集合只能前向遍历;Listlterator只能用来遍历List,对集合即可前向也可后向.
4.lterator(迭代器):
提供了统一遍历操作集合元素的统一接口,Collection接口实现了lterable接口;在迭代元素的时候不能通过集合的方法删除元素,否则会抛出异常;但可以通过lterator接口中的remove()方法进行删除.