public class NewMyArraylist {
private Object[] elementData;//定义
private int DEFAULT_CAPACITY=10;//默认数组容量
private int size;//数组里对象的实际个数
public NewMyArraylist() {
elementData = new Object[DEFAULT_CAPACITY];
}
public NewMyArraylist(int definitcapacity) {
if(definitcapacity<0) {
try {
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
elementData = new Object[definitcapacity];
}
/**
* 返回当前数组长度
*/
public int getSize() {
return size;
}
/**
* 返回数组容量
*/
public int getCapacity() {
return elementData.length;
}
/**
* 判断是否需要扩容
*/
public void booladd() {
if(size==elementData.length) {
Object[] newElementData = new Object[elementData.length*2];
for(int i=0;i<size;i++) {
newElementData[i]=elementData[i];
}
elementData = newElementData;
}
}
/**
* 添加对象
* @param args
*/
public void add(Object obj) {
booladd();
elementData[size++]=obj;
}
/**
* 插入
*/
public void insert(int index,Object obj) {
booladd();
if(index<0||index>size) {
try {
System.out.println("插入位置错误");
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int i=index;i<size;i++) {
Object temp = elementData[i];
elementData[i]=obj;
obj=temp;
}
size++;
}
/**
* 删除
*/
public void delete(int index) {
if(index<0||index>size-1) {
try {
System.out.println("删除位置无对象");
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int i=index;i<size-1;i++) {
elementData[i]=elementData[i+1];
}
size--;
}
/**
* 修改
*/
public void setObject(int index,Object obj) {
if(index<0||index>size-1) {
try {
System.out.println("删除位置无对象");
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
elementData[index] = obj;
}
/**
* 输入index返回对应的值
* @param args
*/
public Object find(int index) {
if(index<0||index>=size) {
try {
System.out.println("超界");
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return elementData[index];
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
NewMyArraylist list = new NewMyArraylist(1);
list.add("asd");
list.add("assd");
list.add("asd");
list.insert(0, "insert");
list.delete(0);
list.setObject(0, "setObject");
System.out.println(list.find(0));
System.out.println("数组的容量"+list.getCapacity());
System.out.println("数组的长度"+list.getSize());
}
}
文记:Arraylist是对于数组的应用,并进行增,删,改,插的操作。