适配器模式

<p>ArrayList类目前只是支持迭代器接口,但是不支持枚举,我们目前定义一个ArrayList的枚举适配器ArrayListEnumerator,来实现ArrayList类支持枚举。</p><p>ArrayListEnumerator类中有一个Iterator对象的引用,ArrayListEnumerator类实现Enumeration接口中的方法,但是实际上是用Iterator类的hasNext()和next()方法来实现Enumeration类的hasMoreElements()和nextElement()方法。</p><p>   适配器的思想就是:客户想要实现某一个接口 Enumeration,接口中的方法已知,但是不能直接用(或者不知道怎么用),我们通过定义一个适配器ArrayListEnumerator,通过已知的方法(ArrayListEnumerator类中引用对象Iterator的方法我们会用)来实现接口中的方法。</p>
<pre name="code" class="java">import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;

public class ArrayListEnumerator implements Enumeration {
    Iterator iterator;
    public ArrayListEnumerator(Iterator iterator) {
        this.iterator=iterator;
        // TODO Auto-generated constructor stub
    }
  public boolean hasMoreElements()
  {
      return iterator.hasNext();
  }
  public Object nextElement()
  {
    return iterator.next();
      
  }
  public  static void main(String []args)
  {
     ArrayList<String> list=new ArrayList<String>();
     list.add("aa");
     list.add("bb");
     Iterator iterator=list.iterator();
     ArrayListEnumerator arrayListEnumerator=new ArrayListEnumerator(iterator);
     while(arrayListEnumerator.hasMoreElements())
     {
         System.out.println(""+arrayListEnumerator.nextElement());
     }
  }
}



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值