zoukankan      html  css  js  c++  java
  • Design Pattern:迭代器模式

    迭代器模式

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

    可以用同一种方法来遍历

    image-20200620230048149

    例子

    // 如果是arraylist之类的,内置的就有了
    public class PancakeHouseMenu implements Menu{
        Arraylist<MenuItem> items;
        
        @Override
        public Iterator createIterator(){
            return items.iterator(); // 用java内置的方法就完事了
        }
    }
    
    // 如果是数组,就比较麻烦,要自己写了
    public class DinerMenu implements Menu {
       public MenuItem[] list;
     
       @Override
       public Iterator getIterator() {
          return new NameIterator();
       }
     
       private class DinerMenuIterator implements Iterator {
     
          int index;
     
          @Override
          public boolean hasNext() {
             if(index < list.length){
                return true;
             }
             return false;
          }
     
          @Override
          public Object next() {
             if(this.hasNext()){
                return list[index++];
             }
             return null;
          }     
           
           //remove方法...略
       }
    }
    
    
  • 相关阅读:
    springboot @Select @Insert @Update @Delete
    列表全选与全反选
    日期控件处理
    MyCat
    eclipse中copy qualified name使用方式
    JPA
    java数组
    Java多线程
    Hadoop采样器实现全排序(报错java.io.EOFException)
    Hadoop全排序
  • 原文地址:https://www.cnblogs.com/cpaulyz/p/13173298.html
Copyright © 2011-2022 走看看