概述
Java集合的遍历方式,Iterator,foreach:增强for循环
- 前言
- 一、Iterator:可以用于遍历集合
- 二、foreach:增强for循环,一般用于遍历集合或者数组
- 总结
前言
1.toArray(),可以把集合转换成数组,然后遍历数组即可
2.iterator(),可以返回一个迭代器对象,我们可以通过迭代器对象来迭代集合
3.foreach:增强for循环,一般用于遍历集合或者数组
一、Iterator:可以用于遍历集合
E next() :返回下一个元素
boolean hasNext() :判断是否有元素可以获取
代码如下(示例):
//创建集合对象
Collection c = new ArrayList();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
//获取迭代器对象
Iterator it = c.iterator();
//Object next()
:返回下一个元素
//boolean hasNext()
:判断是否有元素可以获取
while(it.hasNext()) {
System.out.println(it.next());
}
-
注意(1):Exception in thread “main” java.util.NoSuchElementException:使用next方法获取下一个元素,如果没有元素可以获取,则出现NoSuchElementException.
-
注意(2)需求:判断集合中是否包含元素java,如果有则添加元素android.
Exception in thread “main” java.util.ConcurrentModificationException:并发修改异常。迭代器是依赖于集合的,相当于集合的一个副本,当迭代器在操作的时候,如果发现和集合不一样,则抛出异常 -
解决方案:
你就别使用迭代器
在使用迭代器进行遍历的时候使用迭代器来进行修改
//创建集合对象
List c = new ArrayList();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
ListIterator lit = c.listIterator();
while(lit.hasNext()) {
String s = (String)lit.next();
if(s.equals("java")) {
lit.add("android");
}
}
System.out.println(c);
二、foreach:增强for循环,一般用于遍历集合或者数组
格式:
for(元素的类型 变量 : 集合或者数组对象) {
可以直接使用变量;
}
注意:在增强for循环中不能修改集合,否则会出现并发修改异常。
public interface Iterable<T>
实现这个接口允许对象成为 "foreach" 语句的目标。
代码如下(示例):
public class ForEachDemo {
public static void main(String[] args) {
//创建集合对象
Collection<String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
//增强for循环遍历集合
for(Object obj : c) {
System.out.println(obj);
}
for(String s : c) {
s = s.toUpperCase()+"其他的内容";
System.out.println(s); //改变的只是变量
}
for(String s : c) {
System.out.println(s); //不变
}
/*for (String string : c) {
c.add("android");
System.out.println(string);
}*/
Collection<Student> c = new ArrayList<Student>();
c.add(new Student("张三",20));
c.add(new Student("李四",18));
for(Student student:c) {
System.out.println("name:"+student.name+"
age:"+student.age);
student.name = student.name+"xx";
//c.add(new Student("王五",22)); 有添加会报错
//c1.remove(student);有删除就集合长度-1,因为长度为2,长度-1之后直接退出。下面会只打印("李四",18)
}
for(Student student:c) {
System.out.println("name:"+student.name+"
age:"+student.age);
}
//集合内容发生变化
}
}
class Student {
String name;
int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
}
总结
Iterator在遍历中不可以直接对集合进行修改,增加,删除,修改的是迭代器对象。
foreach:增强for循环。在遍历中不可以对集合进行增加,删除看需求,但修改对象一般会改变集合内容(字符串不会)。
最后
以上就是整齐玉米为你收集整理的Java集合的遍历方式,Iterator,foreach:增强for循环前言一、Iterator:可以用于遍历集合二、foreach:增强for循环,一般用于遍历集合或者数组总结的全部内容,希望文章能够帮你解决Java集合的遍历方式,Iterator,foreach:增强for循环前言一、Iterator:可以用于遍历集合二、foreach:增强for循环,一般用于遍历集合或者数组总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复