package objorientation;
/**
* custom ArrayList simple implements
*
*/
public class MyArrayList {
int[] currentList = null;
int size;
/**
* init the list
* @param list
*/
public void init(int[] list) {
currentList = list;
size = currentList.length;
}
/**
* add item to list
* @param data
*/
public void add(int data) {
int[] newList = new int[size + 1];
for (int i = 0; i < size; i++) {
newList[i] = currentList[i];
}
newList[size] = data;
currentList = newList;
size++;
}
public int size() {
return size;
}
/**
* remove item by index
* @param index
*/
public void remove(int index) {
if (size == 0)
return;
int[] newList = new int[size - 1];
for (int i = 0; i < size; i++) {
if (i > index) {
newList[i-1] = currentList[i];
}
else
{
if(i!=index)
{
newList[i] = currentList[i];
}
}
}
currentList = newList;
size--;
}
/**
* get array list size
*/
public void clear() {
currentList = null;
size = 0;
}
/**
* get array list
* @return
*/
public int[] getList()
{
return currentList;
}
}
测试类
package objorientation;
public class TestArray {
public static void main(String[] args) {
MyArrayList list = new MyArrayList();
int[] abc = new int[2];
list.init(abc);
list.add(3);
list.add(4);
list.remove(0);
int[] list2 = list.getList();
for (int i = 0; i < list2.length; i++) {
System.out.print(list2[i]+", ");
}
System.out.println("list size is: "+list.size());
}
}