设计模式笔记-迭代器模式

迭代器模式主要是实现容器遍历。
public interface Iterator {
        public boolean hasNext();
       
        public String next() throws Exception;
}
public class ConcreteIterator implements Iterator {
        private ProductList productList ;
        private int index ;
       
        public ConcreteIterator(ProductList productList) {
               this .productList = productList;
               this .index = 0;
       }

        public boolean hasNext() {
               if (index < productList .length()) {
                      return true ;
              } else {
                      return false ;
              }
       }

        public String next() throws Exception {
              String str = "" ;
               if (!hasNext()) {
                      throw new Exception( "no next");
              } else {
                     str = productList .getList().get(index );
                      index++;
              }
               return str;
       }

}
public class ProductList {
        public List<String> list = new ArrayList<String>();
       
        public void add(String str) {
               list.add(str);
       }

        public void remove(String str) {
               list.remove(str);
       }
       
        public int length() {
               return list .size();
       }
       
        public List<String> getList() {
               return list ;
       }
}
public class IteratorClient {

        public static void main(String[] args) throws Exception {
              ProductList list = new ProductList();
              list.add( "str1" );
              list.add( "str2" );
              list.add( "str3" );
              Iterator iterator = new ConcreteIterator(list);
               while (iterator.hasNext()) {
                     System. out .println(iterator.next());
              }
       }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值