举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > java迭代器模式案例 Java 迭代器模式

java迭代器模式案例 Java 迭代器模式

2023-03-07 07:17 Java教程

java迭代器模式案例 Java 迭代器模式

java迭代器模式案例

迭代器模式是一种常用的设计模式,它可以顺序地访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的元素。

下面我们来看一个具体的java迭代器模式实例:

public interface Iterator { 
    public boolean hasNext(); 
    public Object next(); 
} 
public interface Container { 
    public Iterator getIterator(); 
} 
public class NameRepository implements Container { 

    public String names[] = {"Robert" , "John" ,"Julie" , "Lora"};

    @Override 
    public Iterator getIterator() { 

        return new NameIterator(); 

    }  

    private class NameIterator implements Iterator {

        int index;

        @Override 

        public boolean hasNext() {  

            if(index < names.length){  

                return true;  

            }  

            return false;  

        }  

        @Override  

        public Object next() {  

            if(this.hasNext()){  

                return names[index++];  

            }  

            return null;       }     }}

上面的例子中,NameRepository是一个容器类,它有一个字符串数组names作为内部数据。NameIterator是一个迭代器,它实现了Iterator接口并重写了hasNext()和next()方法。NameRepository实现了Container接口并重写了getIterator()方法。

当我们要遍历NameRepository时,我们可以使用如下代码来实现:

public static void main(String[] args) {      NameRepository namesRepository = new NameRepository();      for(Iterator iter = namesRepository.getIterator(); iter.hasNext();){         String name = (String)iter.next();         System.out.println("Name : " + name);      }}

Java 迭代器模式

Java设计模式 - 迭代器模式


迭代器模式以顺序方式访问集合对象的元素,而不知道其底层表示。

迭代器模式是行为模式之一。

例子

interface Iterator {
   public boolean hasNext();
   public Object next();
}
class LetterBag {
   public String names[] = {"R" , "J" ,"A" , "L"};
   public Iterator getIterator() {
      return new NameIterator();
   }
   class NameIterator implements Iterator {
      int index;
      @Override
      public boolean hasNext() {
         if(index < names.length){
            return true;
         }
         return false;
      }
      @Override
      public Object next() {
         if(this.hasNext()){
            return names[index++];
         }
         return null;
      }    
   }
}
public class Main {
   public static void main(String[] args) {
      LetterBag bag = new LetterBag();
      for(Iterator iter = bag.getIterator(); iter.hasNext();){
         String name = (String)iter.next();
         System.out.println("Name : " + name);
      }   
   }
}

上面的代码生成以下结果。

阅读全文
以上是VUE中文网为你收集整理的java迭代器模式案例 Java 迭代器模式全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们