首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 新手入门 >> 基础入门 >> 正文

Java数据结构---基于数组的表

   public void copyList(ArrayListClass otherList){
     if(this!=otherList){
      for(int i=0;i<length;i++)
       list[i]=null;
      System.gc();
      maxSize=otherList.maxSize;
      length=otherList.length;
      list=new DataElement[maxSize];
      
      for(int j=0;j<length;j++)
       list[j]=otherList.list[j].getCopy();
     }
    }
    public abstract int seqSearch(DataElement seqItem);
    public abstract void insert(DataElement insertItem);
    public abstract void remove(DataElement removeItem);     
  } 
看到代码的最后你回发现这个类其实是一个抽象类,为什么要这样定义呢?之所以这样我们是为了针对不同是类型:顺序表和非顺序表.不难想象他们的一些方法是存在差异的,先看一下非顺序表:

public class UnorderedArrayList extends ArrayListClass{

 /**
  * 
  */
 public UnorderedArrayList() {
  super();
  // TODO Auto-generated constructor stub
 }

 /* (non-Javadoc)
  * @see ArrayListClass#seqSearch(DataElement)
  */
 public int seqSearch(DataElement seqItem) {
  // TODO Auto-generated method stub
  int loc;
  boolean found=false;
  
  for(loc=0;loc<length;loc++)
   if(list[loc].equals(seqItem))
   {
    found=true;
    break;
   }
   if(found)
    return loc;
   else
    return -1;
 }

 /* (non-Javadoc)
  * @see ArrayListClass#insert(DataElement)
  */
 public void insert(DataElement insertItem) {
  // TODO Auto-generated method stub
  int loc;
  if(length==0)
   list[length++]=insertItem.getCopy();
  else
   if(length==maxSize)
    System.err.println("Can’t insert in a  full list!!");
   else{
    loc=seqSearch(insertItem);
    
    if(loc==-1)
     list[length++]=insertItem.getCopy();
    else
     System.err.println("The item to be inserted is allready in the list!!");
    
   }
 }

 /* (non-Javadoc)
  * @see ArrayListClass#remove(DataElement)
  */
 public void remove(DataElement removeItem) {
  // TODO Auto-generated method stub
  int loc;
  
  if(length==0)
   System.err.println("Can’t delete from a empty list!!");
  else{
   loc=seqSearch(removeItem);
   if(loc!=-1)
    removeAt(loc);
   else
    System.err.println("The item to be deleted is not in the list!!");
  }
  
 }

}

就是这么简单!!相信顺序表也可以轻松高顶了.

上一页  [1] [2] [3] 

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·C++箴言大合集
 ·开源框架 Structs 2.0入门教程
 ·诱人的奶酪 J2ME手机开发技术
 ·Oracle外键及外键约束修改行为
 ·开源软件测试工具学习专题
 ·JSP Web开发 入门基础到高手进阶教程
 ·JavaFX—是Java桌面的新希望么?
 ·安全至上 .NET开发安全策略
 ·测试用例设计之道-测试用例学习专题
 ·面向Java开发人员的Scala指南
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航