package Jobday10_ArrayList;
private Object[] array;
private int size;
this(10);// 构造方法的调用 调用下面的 重载
}
public MyArrayList(int num) {
// 检查设置新建数组的长度是否符合数组的规范
if (num < 0) {
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
array = new Object[num];
}
xinZen();
array[size] = obj;
size++;
return true;
}
public void add(int index, Object obj) {
xiaBiao(index);
xinZen();
System.arraycopy(array, index, array, index + 1, size - index);
array[index] = obj;
size++;
}
public Object get(int index) {
xiaBiao(index);
return array[index];
}
public void xinZen() {
// 若添加时,超过默认数组长度,会新增到原来的1.5倍
if (size == array.length) {
Object[] newArray = new Object[size + size / 2];
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
}
}
public void xiaBiao(int index) {
// 对下标的检查 0<=index<size
if (index < 0 || index >= size) {
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
private Object[] array;
private int size;
//主方法测试类:
public static void main(String[] args) {
MyArrayList list = new MyArrayList();
list.add("aaa");
list.add("bbb");
list.add(9527);
list.add('A');
list.add("唐伯虎");
System.out.println("长度为:" + list.size);
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
System.out.println(list.get(3));
System.out.println(list.get(4));
}
//构造方法
this(10);// 构造方法的调用 调用下面的 重载
}
public MyArrayList(int num) {
// 检查设置新建数组的长度是否符合数组的规范
if (num < 0) {
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
array = new Object[num];
}
public int length() {
return size;
}
xinZen();
array[size] = obj;
size++;
return true;
}
public void add(int index, Object obj) {
xiaBiao(index);
xinZen();
System.arraycopy(array, index, array, index + 1, size - index);
array[index] = obj;
size++;
}
public Object get(int index) {
xiaBiao(index);
return array[index];
}
public void xinZen() {
// 若添加时,超过默认数组长度,会新增到原来的1.5倍
if (size == array.length) {
Object[] newArray = new Object[size + size / 2];
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
}
}
public void xiaBiao(int index) {
// 对下标的检查 0<=index<size
if (index < 0 || index >= size) {
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}