我是靠谱客的博主 整齐玉米,这篇文章主要介绍Java集合的遍历方式,Iterator,foreach:增强for循环前言一、Iterator:可以用于遍历集合二、foreach:增强for循环,一般用于遍历集合或者数组总结,现在分享给大家,希望可以做个参考。

Java集合的遍历方式,Iterator,foreach:增强for循环

  • 前言
  • 一、Iterator:可以用于遍历集合
  • 二、foreach:增强for循环,一般用于遍历集合或者数组
  • 总结


前言

1.toArray(),可以把集合转换成数组,然后遍历数组即可
2.iterator(),可以返回一个迭代器对象,我们可以通过迭代器对象来迭代集合
3.foreach:增强for循环,一般用于遍历集合或者数组


一、Iterator:可以用于遍历集合

E next() :返回下一个元素
boolean hasNext() :判断是否有元素可以获取

代码如下(示例):

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//创建集合对象 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:并发修改异常。迭代器是依赖于集合的,相当于集合的一个副本,当迭代器在操作的时候,如果发现和集合不一样,则抛出异常

  • 解决方案:
    你就别使用迭代器
    在使用迭代器进行遍历的时候使用迭代器来进行修改

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//创建集合对象 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循环中不能修改集合,否则会出现并发修改异常。

复制代码
1
2
3
public interface Iterable<T> 实现这个接口允许对象成为 "foreach" 语句的目标。

代码如下(示例):

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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集合内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部