import java.util.Arrays;
public class Collection_4_23_01 {
public static void main(String[] args) {
/*
* 容器
*
*/
ArrayList_py ArrayList_py1 = new ArrayList_py();
ArrayList_py1.add("ppyy");
ArrayList_py1.add("ooii");
ArrayList_py1.add("xxqq");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.add("qqxx");
ArrayList_py1.showIt();
System.out.println("数组的长度是 "+ArrayList_py1.getSize());
System.out.println("第二个元素是 "+ArrayList_py1.getElement(1));
}
}
interface List {
//增加元素
void add (Object element);
//删除元素
void remove (int idx);
//获取长度
int getSize ();
//获取元素
Object getElement(int idx);
}
class ArrayList_py implements List {
private Object[] datas; //存储数据的数组
private int arrLength; //数组长度
private int size; //元素个数
{
datas = new Object[10];
arrLength = 10;
size = 0;
}
public void add (Object element) {
this.datas[size] = element; //将数据放入数组中
this.size++; //元素个数加一
if (this.size >= this.arrLength) {
Object[] datas2 = new Object[arrLength+10];
System.arraycopy(datas, 0, datas2, 0, datas.length);
this.datas = datas2; //地址替换
}
}
public void remove (int idx) {
System.arraycopy(this.datas,idx+1,this.datas,idx,this.datas.length-(idx+1));
this.size--;
}
public int getSize () {
return this.size;
}
public Object getElement(int idx) {
if (idx < 0 || idx > this.size-1) {
throw new ArrayIndexOutOfBoundsException("传入位置有问题,无法找到元素");
}
return this.datas[idx];
}
public void showIt () {
for (int i = 0; i < this.size; i++) {
if (this.datas[i] != null) {
System.out.print("[ "+this.datas[i]+" ] ");
}
}
System.out.println("");
}
}本文出自 “影魔登场” 博客,请务必保留此出处http://woodywoodpecker.blog.51cto.com/4820467/1637759
原文:http://woodywoodpecker.blog.51cto.com/4820467/1637759