JavaSE基础(100) 自定义容器类(存储任意数据类型和数据个数)

自定义容器类:可以存储任意数据类型和数据个数

/**
 * 自定义容器类:可以存储任意数据类型和个数
 * @author 郑清
 */
public class MyArrayDemo {
	public static void main(String[] args) {
		MyArray myArray = new MyArray();
		myArray.add("这是第");
		myArray.add(1);
		myArray.add("个自定义容器!!");
		System.out.println("容器长度为:" + myArray.size);
		System.out.println(myArray);
	}
}
class MyArray{
	Object[] data;//保存数据值
	int size;//数据个数
	
	MyArray() {
		this(5);//默认给容器传5个长度
	}
	MyArray(int length) {
		data = new Object[length];
	}
	//定义一个添加数据的add方法
	public void add(Object value) {
		//如果容器长度已满,则自动扩容
		if (size == data.length) {
			Object[] arr = new Object[size+5];//自动扩容长度5
			System.arraycopy(data, 0, arr, 0, size);//把数组data里的下标为0起的size个数据拷贝到数组arr下标为0起的size个数据
			data = arr;
		}
		data[size++] = value;
	}
	//覆写toString返回数组元素值
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		Object[] arr = new Object[size];
		System.arraycopy(data, 0, arr, 0, size);//把数组data里的下标为0起的size个数据拷贝到数组arr下标为0起的size个数据
		return Arrays.toString(arr);
	}
}

运行结果图:

JavaSE基础(100) 自定义容器类(存储任意数据类型和数据个数)_第1张图片

你可能感兴趣的:(-----❶,JavaSE基础)