ArrayList自己实现(添加,插入,删除,遍历)

~~public class MyArrayList {

private Object[] elementData = {};
private int size = 0;

private void expand(){
	if( size == 0 ){
		elementData = new Object[10];
	}
	if( size == elementData.length ){	//扩容1.5倍
		elementData = Arrays.copyOf( elementData, size+(size>>1) );
	}
}

/**
 * 添加
 * @param e
 * @return
 */
public boolean add(E e){
	expand();
	elementData[size++]=e;
	return true;
}

/**
 * 插入
 * @param index
 * @param e
 * @return
 */
public boolean add( int index, E e ){
	if( index < 0 || index >= size ){	//数组下标越界
		throw new ArrayIndexOutOfBoundsException();
	}
	if( index == size ){
		return add(e);
	}
	expand();
	for(int i = size-1; i>=index; i--){
		elementData[i+1] = elementData[i];
	}
	elementData[index]=e;
	size++;
	return true;
}

/**
 * 删除
 */
public E remove(int index){
	if( index < 0 || index >= size ){	//数组下标越界
		throw new ArrayIndexOutOfBoundsException();
	}
	E e = (E) elementData[index];
	for( int i=index+1; i < size; i++ ){
		elementData[i-1] = elementData[i];
	}
	elementData[--size] = null;
	return e;
}

/**
 * toString()
 * @return 
 */
public String toString(){
	if( size == 0 ){
		return "[]";
	}
	StringBuilder stb = new StringBuilder();
	stb.append("[");
	stb.append(elementData[0]);
	for( int i = 1; i<elementData.length; i++  ){
		stb.append(",").append( elementData[i] );
	}
	stb.append("]");
	String str = stb.toString();
	return str;
}

}~~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值