Ø
在程序中用于装其他各种各样对象的一种对象叫做容器。
String[]strs={"hello","world"}
数组也是一种容器,在数组中可以存放其他各种各样的对象。
所以在上面的代码中strs就是一个容器对象。但是数组做为容器有一个缺陷就是数组的长度是不能改变的,所以是不能动态的对数组中的对象进行增加和删除。所以JDK给我们提供了其他的一些容器类。
JDK为我们提供的容器类的API位于java.util包内
JDK为我们提供的容器类的类层次结构图
•
Collection接口-定义了存取对象的方法。两个非常常用的子
接口:
–
Set接口:存放的元素不包含重复的容器接口
–
List接口:存放的元素有序且允许有重复的容器接口
•
说明:
–
“元素”-对象,实例
–
“重复”-两个对象通过equals相等
–
“有序”-元素存入的顺序与取出的顺序相同
•
Map接口-定义了存储“键(key)-值(value)映射对”的方法。
•
接下来就对Collection接口进行详细解析一下:
collection 中的一些方法:
---int size():返回Collection中的元素数。
---boolean isEmpty():判断collection中是否为空。
---boolean contains(Object oj):判断是否包含此元素。
---boolean containsAll(Collection c):判断Collection中是否包含c中的所有元素。
---boolean add(Object element):向collection中添加元素。
---boolean addAll(Collection c):将c中所有元素添加到Collection中。
---boolean remove(Object element):删除元素。
---boolean removeAll(Collection c):删除c所有的元素。
---void clear():移除所有的元素。
---boolean retainAll(Colection c):仅仅保留c中那些Collection中也有的元素.
---Iterator iterator():返回在此元素上进行迭代的迭代器。
---Object[] toArray():把collection转换成数组。
下面是一个小实例:
Collection
方法代码示例:
容器对象在调用
remove
和
contains
方法时需要比较元素对象是否相等。这里会
涉及到元素对象类型的
equals
方法和
hashcode
方法。对于自定义类型需要重写
该类型的
equals
方法和
hashcode
方法,以实现自定义类型对象的相等原则
。
相等的对象应该具有相同的
hashcode
值
•
所有实现了Collection接口的容器类都有一个iterator()方法
用以返回一个实现了Iterator接口的对象。
•
Iterator对象称作迭代器,用以方便的实现对容器内元素的遍
历操作。
•
Iterator接口中定义了如下方法:
–
boolean hasNext(); //判断游标右边是否有元素
–
Object next() ; //返回游标右边的元素并将游标移动到
下一个位置
–
void remove(); //删除游标左面的元素
Iterator接口应用举例:
关于set list 接口的介绍将在下一篇里介绍。