遍历集合元素

曾经终败给现在 2022-07-11 12:04 425阅读 0赞

使用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循环

  1. Iterator接口相似的是,foreach循环中的迭代变量也不是集合元素本身,系统只是依次把集合元素的值赋给迭代变量。
  2. public class ForeachTest
  3. {
  4. public static void main(String[] args)
  5. {
  6. Collection books = new HashSet();
  7. books.add(new String("企业应用"));
  8. books.add(new String("疯狂讲义"));
  9. for(Object obj : books)
  10. {
  11. String book = (String)obj;
  12. System.out.println(book);
  13. if(book.equals("疯狂讲义")
  14. {
  15. //下面代码引发异常
  16. books.remove(book);
  17. }
  18. }
  19. System.out.println(books);
  20. }
  21. }

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

发表评论

表情:
评论列表 (有 0 条评论,425人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java集合丢失元素

    Java集合遍历丢失元素的问题通常发生在集合被遍历的同时被修改(例如添加或删除元素)。这种情况可能导致遍历过程中跳过某些元素,或者抛出`ConcurrentModificati

    相关 Map集合

    众所周知Map集合是以键值对形式存储,所以当我们需要这些键或者值的时候,需要遍历出来键和值。 1.通过遍历键获取值 for(String s:map.keySet