• java实现23种设计模式之迭代器模式


    迭代器模式(Iterator Pattern)是 Java 编程环境中非常常用的设计模式。

    这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。

    package com.ceshi15;
    
    public interface Iterator {
        //前移
        public Object previous();
        
        //后移
        public Object next();
        public boolean hasNext();
        
        //取得第一个元素
        public Object first();
    }
    package com.ceshi15;
    
    public interface Collection {
        
        public Iterator iterator();
        
        /*取得集合元素*/
        public Object get(int i);
        
        /*取得集合大小*/
        public int size();
    }

    实现类

    package com.ceshi15;
    
    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);
        }
    
    }
    package com.ceshi15;
    
    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;
        }
    
    }
    package com.ceshi15;
    
    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());
            }
        }
    }

    可以模仿java迭代方法的实现。

    关键就是定义接口:hasNext, next。

    然后通过这种借口写出自己的集合框架

  • 相关阅读:
    旋转数组的最小数字
    Redis常用方法
    用两个栈实现队列
    Spark1.4启动spark-shell时initializing失败
    从尾到头打印链表
    Hbase的安装(hadoop-2.6.0,hbase1.0)
    执行sh文件 进行MongoDB的业务逻辑导入
    Scala第二章学习笔记
    替换空格
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10756309.html
Copyright © 2020-2023  润新知