遍历(也称迭代)容器的4种常用方式
来源:互联网 发布:ps如何把图片矩阵排列 编辑:程序博客网 时间:2024/06/06 05:01
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循环从而实现想要的效果。
感谢大家的阅读。
转载于教材
- 遍历(也称迭代)容器的4种常用方式
- C++ vector容器的4种遍历方式
- 容器类的遍历方式
- Lua常用的4中遍历方式
- 遍历HashMap的常用两种方式
- jquery常用的几种遍历方式
- Java容器---遍历List的四种方式
- 实例化Spring容器常用的两种方式
- Java种遍历Map集合的几种常用方式
- Lua_table中常用的四种遍历方式
- iOS开发中数组常用的五种遍历方式
- Spring容器的初始化4种方式
- Docker容器进入的4种方式
- 115_容器_迭代器遍历Map的两种方式
- JDK容器学习之LinkedHashMap(二):迭代遍历的实现方式
- java中很方便的容器遍历方式
- stl容器在循环遍历中删除元素的方式
- 集合类的4种遍历方式Block遍历,快速遍历,枚举器,普通遍历
- 进程及task_struct
- LineRendererTest
- Android ViewDragHelper实现 侧滑删除效果
- Java学习之Iterator(迭代器)的一般用法
- pandas进行数据的交集与并集方式的数据合并
- 遍历(也称迭代)容器的4种常用方式
- BFS:HDU-1242-Rescue(带守卫的迷宫问题)(优先队列)
- 【JZOJ5055】【GDOI2017模拟二试4.12】树上路径
- HDU
- Activity切换(带参数)
- TestController
- Java应用集群下的定时任务处理方案(mysql)
- 企业所得税
- django Rest Framework 系列 1