java手写ArrayList

public class MyArrayList<Integer> {
 private final int SIZE=10;
 private int size=0;
 public Integer arr[];
 public MyArrayList(){
	arr=(Integer[])new Object[SIZE];
 }
 public void add(Integer a,int index){
	 if(index>arr.length){
		arr=java.util.Arrays.copyOf(arr, 10+arr.length);
	   size++;
	 }else if(index<0){
		 try {
			throw new Exception();
		} catch (Exception e) {
			
			e.printStackTrace();
		}
	 }else{
		 arr[index]=a;
		 size++;
	 }
 }
 public void add(Integer a){
	 if(size==arr.length){

 arr[size]=a;
 size++;
	 }else{
		 arr[size]=a;
		 size++;
	 }
 }
 public boolean remove(int index){
	 if(index<0||index>size){
		 try {
			throw new Exception();
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	 }else{
		 for(int i=index;i<arr.length-1;i++){
			 arr[i]=arr[i+1];
			 
		 }size--;
		 return true;
	 }
 }
 public void clear(){
	arr=(Integer[])new Object[SIZE];
	 size=0;
 }
 
 public void set(Integer a,int index){
	 if(index>size){
		 try {
			throw new Exception();
		} catch (Exception e) {
			
			e.printStackTrace();
		}
	 }else if(index==size){
		 arr[index]=a;
		 size++;
	 }
	 else if(index<size){
		 arr[index]=a;
	 }
 }
 
 
 public void get(int index){
	 if(index<0||index>size){
		 try {
			throw new Exception();
		} catch (Exception e) {
			
			e.printStackTrace();
		
		}
	 }else{
		 System.out.println(arr[index]);
	 }
 }
 public boolean isEmpty(){
	return size==0;
 }

 public java.util.Iterator<Integer>iterator(){
	 return new ArrayListIterator();
 }
 
public class ArrayListIterator implements java.util.Iterator<Integer>{
	private int current=0;

	@Override
	public boolean hasNext() {
		return size>current;
		
	}

	@Override
	public Integer next() {
		if(!hasNext()){
			return null;
		}else{
		return arr[current++];}
	}

	@Override
	public void remove() {
		// TODO Auto-generated method stub
		MyArrayList.this.remove(--current);
	}
}
 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值