19《重学JAVA》--集合(一)
一、集合简述
Java中提供了丰富的集合接口和类,它们来自于java.util包。Java主要的集合接口和类,从图中可见Java集合类型分为:Collection和Map,Collection子接口有:Set、Queue和List等接口。 每一种集合接口描述了一种数据结构。

在JAVA集合中Collection和Map,是集合框架的根接口。
Collection接口中的子接口有Set、List、Queue。
Set接口:实现类:HashSet、LinkedHashSet
List接口:实现类:LinkedList,Vector,ArrayList
有序列表
允许存放重复的元素,实现类。
ArrayList:数组实现,查询快,增删慢,轻量级,但是线程不安全。
LinkedList:双向链表实现,增删快,查询慢,但是线程不安全。
Vector:数组实现,重量级,线程安全、但是使用比较少。
Set集合
扩展Collection接口
无序集合,不允许存放重复的元素;允许使用null元素对add()、equals()和hashCode()方法添加了限制HashSet和TreeSet是Set的实现。
Map集合
集合框架的第二类接口树。
它提供了一组键值的映射。其中存储的每个对象都有一个相应的关键字(key),关键字决定了对象在Map中的存储位置。关键字应该是唯一的,每个key只能映射一个value。
集合遍历
增强for循环for(Obj o:c){System.out.println(o)}
使用iterator,Iterator it=a.iterator;
while(it.hasNext()){Object o = it.next()}
普通循环:for(Iterator it=c.iterator();it.hasNext();){it.next() }
其他
由于Collection接口相关还有一个抽象类AbstractCollection:
AbstractCollection是一个抽象类,实现了Collection接口的部分功能,实现了一些最基本的通用操作,把复杂的和业务相关的延迟到子类实现。
在AbstractCollection中,主要实现了contains(), isEmpty(), toArray(), remove(), clear()这几个操作。