class AList<E>{
	//属性:数组和实际元素个数
	private Object[] data;
	private int size;
	//构造函数:有参、无参
	public AList(int x){
		if(x<0)
			System.out.println("集合初始化异常,不正常的初始值");
		else
			data=new Object[x];
	}
	public AList(){
		this(10);
	}

	//size方法:返回实际元素个数
	public int size(){
		return size;
	}

	//add方法:添加元素,先判断数组空间是否满了,满->扩容,再添加
	public void add(E newData){
		if(size==data.length)
			data=Arrays.copyOf(data,size + (size >> 1));
		data[size++]=newData;
	}

	//get方法:获取指定位置的元素,先对下表进行校验
	public Object get(int index){
		if(index<0 || index>size-1)
			System.out.println("输入的下标不准确,请重新输入!");
		return data[index];
	}

	//remove方法:传下标,先判断下标是否越界
	public void remove(int index){
		if(index<0 || index>size-1)
			System.out.println("输入的下标不准确,请重新输入!");
		System.arraycopy(data,index+1,data,index,(size--) -(index+1));
	}

	//remove方法:传下标,先判断下标是否越界,对数组进行循环遍历,用equals判断
		public void remove(Object obj){
			if(obj==null)
				System.out.println("删除失败,传入元素不能为空");
			else{
				for(int i=0;i<size;i++){
					if(obj.equals(data[i])){
						remove(i);
					}
				}
			}
	}

	//contains方法:判断数组中是否含有传入的参数
	public boolean contains(Object obj){
		for(int i=0;i<size;i++){
			if(obj.equals(data[i]))
				return true;
		}
		return false;
	}

	@Override
	public String toString(){
		StringBuffer str=new StringBuffer("[");
		for(int i=0;i<size;i++){
			if(i!=(size-1))
				str.append(data[i]).append(",");
			else
				str.append(data[i]);
		}
		return str+"]";
	}
}

版权声明:本文为gxh299988原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gxh299988/p/14427093.html