遍历集合元素

来源:互联网 发布:西门子消防主机编程 编辑:程序博客网 时间:2024/05/20 14:18

使用Iterator接口

Iterator主要用于遍历Collection集合中的元素(迭代访问)。
Iterator对象也叫迭代器。

Iterator接口向应用程序提供了遍历Collection集合元素的统一编程接口。Iterator接口定义了三个方法:
1、boolean hasNext():如果被迭代的集合元素还没有被遍历,返回true.
2、Object next():返回集合里面的下一个元素.
3、void remove():删除集合里上一次next方法返回的元素.

Iterato仅用于遍历集合,本身不提供盛装对象的能力。要创建Iterator对象的前提是有一个被迭代的集合。

*重点:
当用Iterator对集合元素进行迭代时,并不是把集合本身元素传给迭代变量,而是把集合元素的值传给了迭代变量,所以修改迭代变量的值对集合元素本身无任何影响。 只有通过Iterator的remove方法删除上一次next方法返回的集合元素才可以,否则会引发异常。

Iterator迭代器采用的是 快速失败(fail-fast)机制,一旦在迭代过程中发现集合已被修改,程序立即引发异常,而不是显示修改后的结构,这样可以避免共享资源而引发的潜在问题。

使用foreach循环

与Iterator接口相似的是,foreach循环中的迭代变量也不是集合元素本身,系统只是依次把集合元素的值赋给迭代变量。
public class ForeachTest {    public static void main(String[] args)     {        Collection books = new HashSet();        books.add(new String("企业应用"));        books.add(new String("疯狂讲义"));        for(Object obj : books)        {            String book = (String)obj;            System.out.println(book);            if(book.equals("疯狂讲义")            {                //下面代码引发异常                books.remove(book);            }        }        System.out.println(books);    }}

当使用foreach循环时,集合也不能被改变,否则将引发异常。

0 0
原创粉丝点击