Bootstrap

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()这几个操作。