集合类存放于Java.util包中,主要有3种:set(集)、list(列表包含Queue)和map(映射)。

1.CollectionCollection是集合ListSetQueue的最基本的接口。

2.Iterator:迭代器,可以通过迭代器遍历集合中的数据

3.Map:是映射表的基础接口

oc 繼承swift類_Boo


oc 繼承swift類_Boo_02

迭代器

该对象必须依赖于绝缘体容器,因为每一个容器的数据结构都不同。所以该迭代器对象是在容器中进行内部实现的,对于使用容器者而言,绝缘体的实现不重要,只要通过容器获取到该实现的迭代器的对象即可,也就是iterator方法,Iterator接口就是对所有的collection容器进行元素取出的公共接口。
将每一个容器中的取出方式进行了封装,并对外暴露,这样无论是什么容器或者数据结构,只要内部取出方式实现了Iterator接口,都可以通过该接口取出这些容器中的元素。他的出现,将容器的取出方式和容器的数据结构相分离,降低了耦合性,而取出方式因为直接在访问容器的元素,并依赖具体的数据结构,所以被定义在了容器中。通过内部类来实现Iterator接口。

注意:迭代要强转,只能有一个next( )方法,否则会有NoSuchElementException异常。

Collection中定义的方法

1、添加

Boolean add(E e):在集合中添加一个对象,如果添加成功,返回true,如果失败,返回false
Boolean addAll(Collection<?extend E> e):在集合中添加另一个集合,成功true,失败false;

2、删除

Boolean remove(object obj):删除一个对象,会改变集合的长度
Boolean removeAll(Colleciton con);删除一个集合,还有两个集合中相同的元素
void clear():删除所有

3、判断

Boolean contains(object obj):在集合中是否包含指定的对象
Boolean containsAll(Collection con):在集合是否包含另一个集合
Boolean isEmpty( ):判断集合是否为空

4、获取

int size( ):得到集合的尺寸大小      数组:length   字符串:length( );
Iterator iterator( ) :取出元素的方式。
for(object obj:con) 用于数组和集合(高级for循环)

5、交集

boolean retainAll(Collection c):返回两个集合的交集元素,删除其他元素,功能和removeAll相反

有A,B两个集合,做完交集后,A集合中的元素发生变化,取得是A和B相同的元素,B不变化。
boolean值-------->只要A集合变化,那么返回true.否则false

6、集合转数组

Object[ ] toArray():把集合转换成对象。

Map中定义的方法

Map接口用于维护键/值对(key/value pairs)。该接口描述了从不重复的键到值的映射。

添加、删除操作:

Object put(Object key, Object value):将互相关联的一个关键字与一个值放入该映像。
如果该关键字已经存在,那么与此关键字相关的新值将取代旧值,方法返回关键字的旧值.
如果关键字原先并不存在,则返回null。

Object remove(Object key): 从映像中删除与key相关的映射。 

void putAll(Map t):将来自特定映像的所有元素添加给该映像。但是不能把Map作为一个键或值添加给自身。

void clear(): 从映像中删除所有映射,键和值都可以为null。

查询操作:

Object get(Object key): 获得与关键字key相关的值,并且返回与关键字key相关的对象,
如果没有在该映像中找到该关键字,则返回null 。  

boolean containsKey(Object key): 判断映像中是否存在关键字key 。  

boolean containsValue(Object value): 判断映像中是否存在值value 。 

int size(): 返回当前映像中映射的数量。

boolean isEmpty() :判断映像中是否有任何映射。

视图操作 :

处理映像中键/值对组:

Set  keySet(): 返回映像中所有关键字的视图集   
“因为映射中键的集合必须是唯一的,你用Set支持。
你还可以从视图中删除元素,同时,关键字和它相关的值将从源映像中被删除,但是你不能添加任何元素。”   

Collection values():返回映像中所有值的视图集   
“因为映射中值的集合不是唯一的,你用Collection支持。
你还可以从视图中删除元素,同时,值和它的关键字将从源映像中被删除,但是你不能添加任何元素。”   

Set entrySet(): 返回Map.Entry对象的视图集,即映像中的关键字/值对   
“因为映射是唯一的,您用Set支持。
你还可以从视图中删除元素,同时,这些元素将从源映像中被删除,但是你不能添加任何元素。”

Map.Entry接口

MapentrySet()方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键/值对。

通过这个集合的迭代器,您可以获得每一个条目(唯一获取方式)的键或值并对值进行更改。当条目通过迭代器返回后,除非是迭代器自身的remove()方法或者迭代器返回的条目的setValue()方法,其余对源Map外部的修改都会导致此条目集变得无效,同时产生条目行为未定义。

Object getKey(): 返回条目的关键字。   

Object getValue(): 返回条目的值 。  

Object setValue(Object value): 将相关映像中的值改为value,并且返回旧值。