您的位置:首页 > 理论基础 > 数据结构算法

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

2014-04-17 16:08 344 查看
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
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: