zoukankan      html  css  js  c++  java
  • [译]Java 设计模式之迭代器

    (文章翻译自java-design-pattern-iterator)

    迭代器模式用于迭代遍历一个集合对象。它是一个经常被用到的模式,你可能以前使用过它。不管在任何时候你看见一些方法像hasNext()和Next(),这个很有可能就是一个迭代器模式。例如,你可以迭代去遍历一个数据库查询记录的列表。

    迭代器模式类图

    iterator-design-pattern

    迭代器模式Java代码

    interface IIterator{
    	public boolean hasNext();
    	public Object next();
    }
     
    interface IContainer{
    	public IIterator createIterator();
    }
     
    class RecordCollection implements IContainer{
    	private String recordArray[] = {"first","second","third","fourth","fifth"};
     
    	public IIterator createIterator(){
    		RecordIterator iterator = new RecordIterator();
    		return iterator;
    	}
     
    	private class RecordIterator implements IIterator{
    		private int index;
     
    		public boolean hasNext(){
    			if (index < recordArray.length)
    				return true;
    			else
    				return false;
    		}
     
    		public Object next(){
    			if (this.hasNext())
    				return recordArray[index++];
    			else
    				return null;
    		}
    	}
    }
     
    public class TestIterator {
    	public static void main(String[] args) {
    		RecordCollection recordCollection = new RecordCollection();
    		IIterator iter = recordCollection.createIterator();
     
    		while(iter.hasNext()){
    			System.out.println(iter.next());
    		}	
    	}
    }
    

    在JDK中是用迭代器模式

    在java.util包中,迭代器接口像下面这样被定义:

    public interface Iterator<E> {
        boolean hasNext();
        E next();
        void remove();
    }
    

    还有其他的类可以创建一个迭代器,例如 TreeSet#iterator(), HashSet#iterator(), 等等。

  • 相关阅读:
    DWVA系列-2-csrf Medium等级 绕过refer的csrf 有点小曲折
    DWVA系列-2-csrf low等级
    DWVA系列-1-brute Impossible等级 预防SQL注入 一次性token+预编译
    DWVA系列-1-brute medium等级
    DWVA系列-1-brute low等级
    获取SD卡剩余容器
    MD5Encoder
    本地缓存
    内存缓存
    网络缓存
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/4214368.html
Copyright © 2011-2022 走看看