1.将容器转换为数组
Collection接口定义了toArray方法将容器对象转换为数组,然后可以利用循环依次取出数组中的元素,方法代码片段:
Object[] elements = c.toArray() // c是重写toArray方法的容器实现类的对象
for(int i=0;i<elements.length;i++){
Object o = elements[i];
}
2.使用迭代器接口Iterator
迭代器是一种允许对容器中元素进行遍历并有选择地删除元素对象,并不是一种容器。迭代器以Iterator接口,一般通过
Collection接口定义的iterator方法得到。Iterator3个方法如下。
boolean hasNext() 若仍有未被迭代的元素,返回true
Object next() 得到下一个未被迭代的元素
void remove() 删除迭代器当前指向的元素
(另加说明一下: Iterator 的hasNext方法和next方法,
hasNext():判断当前元素是否存在,并没有指向的移动
next():返回当前元素, 并指向下一个元素)
方法代码片段:
Iterator it = c.iterator(); //c是重写iterator方法的容器实现类的对象
while(it.hasNext()){ // 判断是否有元素未被迭代
Object o = it.next(); //得到下一个未被迭代的元素
........................ //对o进行操作
}
3.使用size和get方法
先获取容器内所有元素的个数,然后依次取出每个位置上的元素并访问。
方法代码片段:
for(int i=0;i<c.size();i++){ //c是重写size方法的容器实现类的对象
Object o = c.get(i); //并且c支持按位置取出元素的get方法
......................///对o进行操作
}
4.使用迭代型for语句循环
再说第4种方法之前我先声明一下,前3种方法都有局限性,比如某些容器就不支持3中的get方法,然而第四种方法,
绝大部分容器都支持这种方式的遍历,因而无须事先知道容器对象所对应的类重写Collection接口的哪些方法,并且无需额外的编写代码以控制循环的结束。
方法代码片段:
for(Object o :容器对象){
循环体//对元素O进行操作
}
有一点需要注意一下,由于Map未继承Collection接口,因此Map接口的实现类的对象不支持迭代型for循环,对于映射型容器,我们可以先将映射转换为集合,然后再对后者使用迭代型for循环从而实现想要的效果。
感谢大家的阅读。
转载于教材