数组列表容器

来源:互联网 发布:linux config 编辑:程序博客网 时间:2024/05/02 19:26

package NList;

public class NArrayList
{
private Object[] ArrayList;
private int size;

public NArrayList(){    this(10);}public NArrayList(int initial){    if(initial < 0)    {        try        {           throw new Exception();        }        catch(Exception e)        {           e.printStackTrace();        }    }    ArrayList = new Object[initial];}public void add(Object obj){     if(size == ArrayList.length)     {         Object[] newArrayList= new Object[size * 2 +1];         System.arraycopy(ArrayList,0,newArrayList,0,ArrayList.length);         ArrayList = newArrayList;     }     ArrayList[size] = obj;     size++;}public void add(int index, Object obj){     RangeCheck(index);     System.arraycopy(ArrayList,index,ArrayList,index +1,size - index);     ArrayList[index] = obj;     size++;}public int size(){    return size;}public boolean isEmpty(){    return size == 0;}public Object get(int index){    RangeCheck(index);     return ArrayList[index];}public void remove(int index){    RangeCheck(index);    int moveNumber = size - index -1;    if(moveNumber > 0)    {       System.arraycopy(ArrayList,index+1,ArrayList,index,moveNumber);       ArrayList[--size] = null;    }}public boolean remove(Object obj){     if(obj == null)     {        for(int i = 0; i < size; i++)        {           if(ArrayList[i] == null)           {               remove(i);               return true;           }        }     }     else     {        for(int i = 0 ; i < size;i++)        {            if(ArrayList[i].equals(obj))            {                 remove(i);                 return true;            }        }     }     return false;}public Object set(int index,Object obj){     RangeCheck(index);     ArrayList[index] = obj;     return ArrayList;}public void RangeCheck(int index){     if(index <0 || index >= size)     {         try         {             throw new Exception();         }         catch(Exception e)         {             e.printStackTrace();         }     } } 

}

0 0