您的位置:

Java Iterator用法

一、概述

Java Iterator是一种遍历容器内元素的接口,可以遍历ArrayList、LinkedList、HashSet、TreeSet、HashMap等容器内的元素。使用Iterator的好处是可以在遍历时不必关心容器内元素保存的具体顺序,而且可以在遍历过程中修改容器内所保存的元素。

二、Iterator接口的定义

Iterator是Java Collection Framework的一部分,它定义了一个迭代器,用于依次访问集合中的元素。它的核心方法包括:

  • hasNext():检查迭代器中是否还有下一个元素。
  • next():返回下一个元素。
  • remove():从迭代器当前指向的位置删除元素。

三、Iterator使用实例

1. ArrayList迭代器遍历

下面的代码使用Iterator遍历ArrayList,并删除数组中的指定元素。

ArrayList list = new ArrayList
   ();
Iterator
     iter = list.iterator();
while (iter.hasNext()) {
    String item = iter.next();
    if (item.equals("element")) {
        iter.remove();
    }
}

    
   
  

2. HashMap迭代器遍历

下面的代码使用Iterator遍历HashMap,并输出Map中的键值对。

HashMap map = new HashMap
   ();
Iterator
    
     > iter = map.entrySet().iterator();
while (iter.hasNext()) {
    Map.Entry
       entry = iter.next();
    System.out.println(entry.getKey() + " = " + entry.getValue());
}

      
     
    
   
  

3. 自定义类迭代器

下面的代码展示如何自定义一个迭代器,用于遍历自定义的MyCollection类中的元素。

public class MyCollection implements Iterable{
    private String[] elements = {"a", "b", "c"};

    public Iterator
    iterator() {
        return new MyIterator();
    }

    private class MyIterator implements Iterator
     {
        private int currentIndex = 0;

        public boolean hasNext() {
            return currentIndex < elements.length && elements[currentIndex] != null;
        }

        public String next() {
            return elements[currentIndex++];
        }

        public void remove() {
            elements[currentIndex] = null;
        }
    }

    public static void main(String[] args) {
        MyCollection collection = new MyCollection();
        Iterator
      iter = collection.iterator();
        while (iter.hasNext()) {
            String item = iter.next();
            System.out.println(item);
        }
    }
}

     
    
   
  

四、总结

Iterator是Java语言中常用的一个接口,它可以方便地遍历容器中的元素,并且可以在遍历过程中动态地修改容器元素。在开发中,使用Iterator可以极大地提高程序的效率和稳定性。