Java中SJBArrayList自己简单实现ArrayList

/**

 * 自己实现ArrayList

 * @author zyyt

 *

 */

 

public class SJBArrayList {

//存放SJBArrayList中的元素

transient Object[] elementData;

 

//SJBArrayList中含有多少个元素

private int size;

 

//构造方法

public SJBArrayList(){

this(10);

}

 

 

public SJBArrayList(int initialCapacity)

{   //对elementData进行初始化

if (initialCapacity > 0) {

            this.elementData = new Object[initialCapacity];

        } else if (initialCapacity == 0) {

            this.elementData = new Object[0];

        } else {

            throw new IllegalArgumentException("Illegal Capacity: "+

                                               initialCapacity);

        }

   

}

 

//判断这个SJBArrayList是否包含元素,如果不包含元素返回true 如果包含则返回false

public boolean isEmpty(){

return size == 0;

}

 

//返回这个SJBArrayList中包含的元素的个数

public int size(){

return size;

}

 

//添加一个元素

public void add(Object obj)

{

    if(size == elementData.length){

   

    Object[] array = new Object[size * 2 +1];

   

    System.arraycopy(elementData, 0, array, 0, elementData.length);

   

    elementData = array;

  }

 

  elementData[size++] = obj;

}

 

//获取对应索引中的元素

public Object get(int index){

 

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

System.out.println("index超过最大索引值或者index小于0");

return null;

}

 

return elementData[index];

 

}

 

//删除对应索引的值

public Object remove(int index){

 

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

System.out.println("index小于0,或者越界");

            System.exit(0);

 

}

 

Object oldValue = this.get(index);

 

System.arraycopy(elementData, index + 1,elementData, index, size);

      

elementData[size--] = null;

 

return oldValue;

 

}

 

//提货对应索引中的值

public Object set(int index,Object obj)

{

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

System.out.println("index小于0,或者越界");

            System.exit(0);

 

}

 

Object oldValue = this.get(index);

 

elementData[index] = obj;

return oldValue;

 

}

 

//清空SJBArrayList

public void clear(){

 

for(int i=0;i<size;i++){

elementData[i] = null;

}

size = 0;

 

}

 

 

 

public static void main(String[] args){

 

 

 

SJBArrayList sjbList = new SJBArrayList();

 

sjbList.add("111");

sjbList.add("2222");

sjbList.add("3333");

sjbList.add("4444");

sjbList.add("5555");

sjbList.add("66666");

 

sjbList.remove(2);

 

System.out.println(sjbList.get(3));

 

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

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

}

 

}

 

}

 

posted @ 2016-09-13 10:01  sujianbo  阅读(216)  评论(0编辑  收藏  举报