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(), 等等。

  • 相关阅读:
    Linux shell 进制转换
    shell 的getopts用法
    COOKIE 和SESSION
    wcf在iis6上的部署
    fastjson修改json的值(转)
    jsonpath的简单用法(转)
    fastjson序列化定制过滤器
    java操作excel给单元格加下拉列表(转)
    Django Admin管理后台详解1(转)
    Django Admin管理后台详解2(转)
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/4214368.html
Copyright © 2011-2022 走看看