唠唠SE的集合-02——Iterator迭代器

2. Iterator

集合的迭代器,依赖于集合而存在。

先看一个栗子:用Iterator遍历Collection

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; // 注意不要导错了类

public class Test {
    public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<Integer>();
        collection.add(5);
        collection.add(123);
        collection.add(456);
        collection.add(741);
        
        Iterator<Integer> iterator = collection.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}

迭代时如果没有先执行next()则会抛出IllegalStateException,这就意味着必须要先检查是否还有下一个可以被迭代的元素,才能往外取。

jdk1.5之后新出了增强for循环,适合遍历数组和集合

那我们再用增强for循环遍历一下Collection:

import java.util.ArrayList;
import java.util.Collection;

public class Test {
    public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<Integer>();
        collection.add(5);
        collection.add(123);
        collection.add(456);
        collection.add(741);
        
        for (Integer num : collection) {
            System.out.println(num);
        }
    }
}

重要!迭代器可操作Collection的add和remove且不会出现异常,但for循环并改动会出现异常情况!严禁用for循环遍历并改动Collection

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏芋道源码1024

ArrayList 其实也有双胞胎,但区别还是挺大的!

这句话的意思是Collection集合类型的toArray()方法虽然声明返回值类型是Object[],但是具体调用时还真不一定就返回Onject[]类型,也有...

1224
来自专栏Phoenix的Android之旅

Java面试的基础中的基础

面试时经常从Java的基础知识开始,最基础的部分莫过于Java的集合类型。我们知道Java的集合类型有三种,Set,List,Map,那这三种有什么区别呢。

981
来自专栏Ryan Miao

java中List对象列表去重或取出以及排序

面试碰到几次list的去重和排序。下面介绍一种做法: 1. list去重 1.1 实体类Student List<Student>容量10k以上,要求去重复。这...

7119
来自专栏Java技术分享圈

杨老师课堂之ArrayList集合解析

​ 在前面我们学习了数组,数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变。例如,要保存一...

703
来自专栏lgp20151222

java中两个map比较

1122
来自专栏java学习

Java每日一练(2017/8/17)

每日一句 学的到东西的事情是锻炼,学不到的是磨练。 查看以前的所有练习题目以及答案:https://mp.weixin.qq.com/mp/homepage?_...

2889
来自专栏机器学习入门

LWC 58:726. Number of Atoms

LWC 58:726. Number of Atoms 传送门:726. Number of Atoms Problem: Given a chemical ...

2515
来自专栏深度学习与计算机视觉

算法-数字在排序数组中出现的次数

题目: 统计一个数字在排序数组中出现的次数,比如排序数组为{1,2,3,3,3,4,5},那么数字3出现的次数就是3。 解题思路: 1.首先,遍历数组肯...

2095
来自专栏Hongten

python开发_类型转换convert

E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

1642
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础(02)-15总结对象数组,集合Collection,集合List

3:集合(List)(掌握) (1)List是Collection的子接口 特点:有序(存储顺序和取出顺序一致),可重复。 package cn.itcas...

3315

扫码关注云+社区

领取腾讯云代金券