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 } }
相关文章推荐
- java数据结构--线性结构
- 数据结构-线性表之顺序储存(Java实现)
- java数据结构--线性结构
- 数据结构-线性表之顺序储存(Java实现)
- java数据结构 七 栈(链式储存结构)
- Java数据结构-线性结构数组(Array)详解
- java数据结构 六 栈共享(顺序储存结构)
- 数据结构之线性结构---队列 顺序储存
- 数据结构中线性表的顺序储存结构
- Java数据结构与算法之数据结构-逻辑结构-线性结构(9)------Java线性结构概念及其基本操作
- 数据结构之线性结构---栈 顺序储存
- 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现
- [Java算法分析与设计]线性结构与顺序表(List)的实现应用
- 数据结构一一线性表的链式存储结构之删除操作
- java 实现数据结构之线性表
- 02-线性结构1 两个有序链表序列的合并——中国大学MOOC-陈越、何钦铭-数据结构-2017秋
- 【数据结构练习】基于线性结构的队列
- JAVA数据结构之线性表的顺序存储
- 数据结构(Java 快速排序模拟)本代码重在学习数据结构思路,代码完整性欠缺,请见谅
- java数据结构-非线性结构之树