• 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。

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

  • 相关阅读:
    大数乘法的几种算法分析及比较(2014腾讯南京笔试题)
    【经典数据结构】Trie
    [LeetCode] MaximumDepth of Binary Tree
    [LeetCode] Minimum Depth of Binary Tree
    二叉树相关题目总结
    python之函数基础总结
    python基础之文件处理总结
    利用for循环和range输出9 * 9乘法口诀表
    购物车程序作业
    字典练习
  • 原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10756309.html
Copyright © 2020-2023  润新知