class AList<E>{
//屬性:陣列和實際元素個數
private Object[] data;
private int size;
//建構函式:有參、無參
public AList(int x){
if(x<0)
System.out.println("集合初始化異常,不正常的初始值");
else
data=new Object[x];
}
public AList(){
this(10);
}
//size方法:返回實際元素個數
public int size(){
return size;
}
//add方法:新增元素,先判斷陣列空間是否滿了,滿->擴容,再新增
public void add(E newData){
if(size==data.length)
data=Arrays.copyOf(data,size + (size >> 1));
data[size++]=newData;
}
//get方法:獲取指定位置的元素,先對下表進行校驗
public Object get(int index){
if(index<0 || index>size-1)
System.out.println("輸入的下標不準確,請重新輸入!");
return data[index];
}
//remove方法:傳下標,先判斷下標是否越界
public void remove(int index){
if(index<0 || index>size-1)
System.out.println("輸入的下標不準確,請重新輸入!");
System.arraycopy(data,index+1,data,index,(size--) -(index+1));
}
//remove方法:傳下標,先判斷下標是否越界,對陣列進行迴圈遍歷,用equals判斷
public void remove(Object obj){
if(obj==null)
System.out.println("刪除失敗,傳入元素不能為空");
else{
for(int i=0;i<size;i++){
if(obj.equals(data[i])){
remove(i);
}
}
}
}
//contains方法:判斷陣列中是否含有傳入的引數
public boolean contains(Object obj){
for(int i=0;i<size;i++){
if(obj.equals(data[i]))
return true;
}
return false;
}
@Override
public String toString(){
StringBuffer str=new StringBuffer("[");
for(int i=0;i<size;i++){
if(i!=(size-1))
str.append(data[i]).append(",");
else
str.append(data[i]);
}
return str+"]";
}
}