java数据结构 一(线性表循序储存结构)

package com;

import java.util.ArrayList;

/**
 * 线性表循序储存结构
 * @author Hadoop
 *
 */
public class LinearTable {

	Object data[];
	int length;
	
	LinearTable(int size){
		 data=new Object[size];
	}
	public Object getElem(int i){
		if(i>=data.length){
			throw new IndexOutOfBoundsException("Index: "+i+", Size: "+length);
		}
		return data[i];
	}
	
	public void listInsert(Object obj){
		if(length==data.length){
			throw new coveredException("list is covered !");
		}
		data[length]=obj;
		length++;
	}
	
	public void listInsert(Object obj,int i){
		if(length==data.length){
			throw new coveredException("list is covered !");
		}else if(i==0||i>=data.length){
			throw new IndexOutOfBoundsException("Index: "+i+", Size: "+length);
		}
		if(i>length){
			data[length]=obj;
		}else{	/*当插队时*/
			for(int k=length-1;k>=i-1;k--)
				data[k+1]=data[k];
			data[i]=obj;
		}
		length++;
	}
	
	public void listRrmove(int i){
		if(i>=length){
			throw new IndexOutOfBoundsException("Index: "+i+", Size: "+length);
		}
		for(int k=i;k<length;k++)
			data[k-1]=data[k];
		length--;
	}
	
	class coveredException  extends RuntimeException {
		private static final long serialVersionUID = -8592932922491718079L;
	    public coveredException() {
	        super();
	    }
	    public coveredException(String s) {
	        super(s);
	    }
	}
	
	/**
	 * 
	 * @param args
	 */
	
	public static void main(String[] args) {
		int size=1000000;
		LinearTable t=new LinearTable(size);
		
		long LinearTableT=System.currentTimeMillis();
		for(int i=0;i<size;i++){
			t.listInsert(i);
		}
		long LinearTableTEnd=System.currentTimeMillis();
		
		
		long LinearTablef=System.currentTimeMillis();
		for(int i=0;i<size;i++){
			t.getElem(i);
		}
		long LinearTablefEnd=System.currentTimeMillis();
		
		long arrayListT=System.currentTimeMillis();
		ArrayList arrayList=new ArrayList();
		for(int i=0;i<size;i++)
			arrayList.add(i);
		long arrayListTEnd=System.currentTimeMillis();
		
		
		
		
		
		long arrayListf=System.currentTimeMillis();
		for(int i=0;i<size;i++){
			arrayList.get(i);
		}
		long arrayListfend=System.currentTimeMillis();
		
		
		long LinearTableAdd=LinearTableTEnd-LinearTableT;
		long arrayListAdd=arrayListTEnd-arrayListT;
		
		long LinearTablefor=LinearTablefEnd-LinearTablef;
		long arrayListfor=arrayListfend-arrayListf;
		
		System.out.println("listadd:"+arrayListAdd+" LinearTable:"+LinearTableAdd);
		System.out.println("listfor:"+arrayListfor+" LinearTable:"+LinearTablefor);
		
//		listadd:115 LinearTable:59
//		listfor:5 LinearTable:4
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值