zoukankan      html  css  js  c++  java
  • java学习笔记-设计模式17(迭代器模式)

    意图

      提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。

    public interface Collection {  
          
        public Iterator iterator();  
          
        /*取得集合元素*/  
        public Object get(int i);  
          
        /*取得集合大小*/  
        public int size();  
    } 
    

      

    public interface Iterator {  
        //前移  
        public Object previous();  
          
        //后移  
        public Object next();  
        public boolean hasNext();  
          
        //取得第一个元素  
        public Object first();  
    }  
    

      

    public class MyCollection implements Collection {  
      
        public String string[] = {"A","B","C","D","E"};  
        @Override  
        public Iterator iterator() {  
            return new MyIterator(this);  
        }  
      
        @Override  
        public Object get(int i) {  
            return string[i];  
        }  
      
        @Override  
        public int size() {  
            return string.length;  
        }  
    } 
    

      

    public class MyIterator implements Iterator {  
      
        private Collection collection;  
        private int pos = -1;  
          
        public MyIterator(Collection collection){  
            this.collection = collection;  
        }  
          
        @Override  
        public Object previous() {  
            if(pos > 0){  
                pos--;  
            }  
            return collection.get(pos);  
        }  
      
        @Override  
        public Object next() {  
            if(pos<collection.size()-1){  
                pos++;  
            }  
            return collection.get(pos);  
        }  
      
        @Override  
        public boolean hasNext() {  
            if(pos<collection.size()-1){  
                return true;  
            }else{  
                return false;  
            }  
        }  
      
        @Override  
        public Object first() {  
            pos = 0;  
            return collection.get(pos);  
        }  
      
    }  
    

      

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

      

      转自:http://blog.csdn.net/zhangerqing/article/details/8243942

  • 相关阅读:
    [UVA1149]Dominating Patterns
    [HDOJ1358]Period
    [HDOJ3065]病毒侵袭持续中
    【RQNOJ356】myt的格斗
    【rqnoj39】 饮食问题
    【rqnoj28】[Stupid]愚蠢的宠物
    【rqnoj378】 约会计划
    layer弹框在实际项目中的一些应用
    layer弹框在实际项目中的一些应用
    移动开发之css3实现背景几种渐变效果
  • 原文地址:https://www.cnblogs.com/gxl00/p/5050569.html
Copyright © 2011-2022 走看看