当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

从调集类的进级联想到Java适配器情势[Java编程]

赞助商链接



  本文“从调集类的进级联想到Java适配器情势[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Historical Collection Classes(JDK1.1 之前)
供应的容器有Arrays,Vector,Stack,Hashtable,Properties,BitSet.此中定义出一种走访聚集内各元素的尺度方法,称为Enumeration(摆列器)接口,用法以下:

Vector v=new Vector();
for (Enumeration enum =v.elements(); enum.hasMoreElements();) {
Object o = enum.nextElement();
processObject(o);
}
而在JDK1.2版本中引入了Iterator接口,新版本的调集对象 (HashSet,HashMap,WeakHeahMap,ArrayList,TreeSet,TreeMap, LinkedList)是通过Iterator接口拜候调集元素的.
比方: List list=new ArrayList();
for(Iterator it=list.iterator();it.hasNext();)
{
System.out.println(it.next());
}

这样,假如将老版本的程序运行在新的Java编译器上就会出错.因为List接口中已经没有elements(),而只有iterator()了.那么若何可以使老版本的程序运行在新的Java编译器上呢?假如不加改正,是必定不行的,但是改正要遵守“开-闭”原则.
这时刻我想到了Java计划情势中的适配器情势.

/*
*@author 我为J狂 成立日期 2007-4-18
*
*/
package net.blogjava.lzqdiy;

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;

public class NewEnumeration implements Enumeration
{

Iterator it;
public NewEnumeration(Iterator it)
{
this.it=it;
// TODO Auto-generated constructor stub
}

public boolean hasMoreElements()
{
// TODO Auto-generated method stub
return it.hasNext();
}

public Object nextElement()
{
// TODO Auto-generated method stub
return it.next();
}
public static void main(String[] args)
{
List list=new ArrayList();
list.add("a");
list.add("b");
list.add("C");
for(Enumeration e=new NewEnumeration(list.iterator());e.hasMoreElements();)
{
System.out.println(e.nextElement());
}
}
}
NewEnumeration是一个适配器类,通过它实现了从Iterator接口到Enumeration接口的适配,这样我们便可以利用老版本的代码来利用新的调集对象了.


  以上是“从调集类的进级联想到Java适配器情势[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 从调集类的进级联想到Java适配器情势
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .