在Java中遍历一个集合中元素的方法有很多种,下面我们来介绍一下其中的两种
- 使用迭代器遍历
- 使用for循环以及增强for循环遍历
首先我们先创建一个集合collection,并添加元素
Collection<String> collect = new ArrayList<String>();
collect.add("张三");
collect.add("李四");
collect.add("王五");
- 使用迭代器:
由于Collection接口继承了Iterable接口,所以使用Iterator创建一个迭代器it
Iterator<String> it = collect.iterator();
JDK在Iterator中提供了提供了hasNext方法和next方法,其中hasNext方法的作用是如果迭代具有更多元素,则返回 true 。next方法的作用是返回迭代中的下一个元素。
while (it.hasNext()){ //如果迭代器中含有元素,返回true,进入while
System.out.println(it.next());//指针指向.hasNext()刚刚访问判断的元素,并打印
}
迭代器的原理图如下:
打印结果如下:
- 使用for循环:
for (int i=0;i<collect.size();i++){
System.out.println(((ArrayList<String>) collect).get(i));
}
使用get方法获取索引值,并打印,打印结果如下:
- 使用增强for循环,其格式如下:
for (类型 被传值对象:要遍历的对象){
System.out.println(被传值对象);
}
具体代码如下:
for (String s:collect){
System.out.println(s);
}
运行结果如下:
增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。