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

数据结构(Java ArrayList模拟)本代码重在学习数据结构思路,代码完整性欠缺,请见谅

2012-04-01 20:37 435 查看
ArrayList的核心是以动态数组为存储结构。

class ArrayList<T>{

private int capability ;

private static final int defaultCapability = 8;

private int size = 0;

private Object[] array = null;

public ArrayList(final int n){

this.capability = n;

this.array = new Object[capability];

}

public ArrayList(){

this.capability = defaultCapability;

this.array = new Object[capability];

}

//添加数据

public void add(T data){

Object obj = (Object)data;

resizeArray();

array[size] = data;

size++;

}

public int size(){

return size;

}

public T get(int index){

if( index < 0 || index >= size)

return null;

return (T)array[index];

}

public T remove(int index){

T t = get(index);

if( t != null ){

for(int i = index; i < size-1; i++){

array[i] = array[i+1];

}

size --;

}

return t;

}

//当数据量为总容量的75%时重新设置数组的大小

private void resizeArray(){

if(size*4 > capability*3 ){

capability = capability *2;

Object[] result = new Object[capability];

System.arraycopy(array, 0, result, 0, size);

array = result;

}

}

}

public class ArrayListTest {

public static void main(String[] args) {

ArrayList<String> arrays = new ArrayList<String>();

arrays.add("123");

arrays.add("124");

arrays.add("125");

arrays.remove(1);

//System.out.println(arrays.get(4));

for(int i =0 ;i< arrays.size(); i++)

System.out.println(arrays.get(i));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐