package collection;
import java.util.Arrays;
public class NewList {
private Object[] array;
private int size;
public NewList()
{
this(10);
}
public NewList(int capacity)
{
if(capacity < 0)
{
try
{
throw new Exception();
}
catch(Exception e)
{
e.printStackTrace();
}
}
else
{
array = new Object[capacity];
}
}
public int size()
{
return size;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
NewList lis = new NewList(4);
Object[] obj = lis.toArray();
lis.add("abc"); //往容器中丢对象
lis.add("kkk");
System.out.println(Arrays.toString(obj)); //打印对象
System.out.println(lis.size()); //打印容器中有多少对象
lis.add(0, "ooo"); //指定位置插入对象
System.out.println(Arrays.toString(obj));
lis.set(1, "benda"); //修改指定位置的值
System.out.println(Arrays.toString(obj));
System.out.println(lis.get(2)); //获得指定位置的值
lis.remove(0); //删除指定位置的值
System.out.println(Arrays.toString(obj));
}
//数组扩容函数
public void Capacity_expansion()
{
if(size == array.length)
{
Object[] newarray = new Object[size * 2];
for(int i = 0; i < array.length; i++)
{
newarray[i] = array[i];
}
array = newarray;
}
}
//add(Object element)方法
public void add(Object element)
{
Capacity_expansion();
array[size] = element; //赋值
size++;
}
public void RangCheck(int index)
{
if(index >= size || index < 0)
{
try
{
throw new Exception();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
//add(int index, Object element)方法
public void add(int index, Object element)
{
RangCheck(index);
Capacity_expansion();
System.arraycopy(array, index, array, index + 1, size - index);
array[index] = element;
size++;
}
//get(int index)方法
public Object get(int index)
{
RangCheck(index);
return array[index];
}
//remove(int index)方法
public Object remove(int index)
{
RangCheck(index);
Object oldvalue = array[index];
System.arraycopy(array, index + 1, array, index, size - index - 1);
array[size] = null;
size--;
return oldvalue;
}
//set(int index, Object element)方法
public void set(int index, Object element)
{
RangCheck(index);
array[index] = element;
}
//Object[] toArray()方法
public Object[] toArray()
{
return array;
}
}
//基本编译显示结果