简单模拟ArrayList-迭代器设计模式-马士兵设计模式教程

import java.util.Iterator;
public class MyArrayList<E> implements Iterable<E>{
	public static int InitSize=2;
	private Object[] elementData=new Object[InitSize];
	private static int size;
	public <E> void add(E e){
		if(size>=InitSize){//如果超出集合的大小,则每次扩充1.5倍
			InitSize=InitSize+(InitSize/2==0?1:InitSize/2);
			Object[] elementTemp=new Object[InitSize];
			System.arraycopy(elementData, 0,elementTemp , 0, size);
			elementData=elementTemp;
		}
		elementData[size]=e;
		size++;
	}
	public E get(int index){
		if(index<0 || index>=size){
			throw new ArrayIndexOutOfBoundsException("出错");
		}
		return (E)elementData[index];
	}
	public static int getSize(){
		return size;
	}
	//实现Iterable接口
	//使用Iterator进行遍历元素
	//不实现的话该类就无法进行增强for循环的操作
	public Iterator<E> iterator() {
		return new Itr();
	}
	class Itr implements Iterator<E>{

		int index=0;
		public boolean hasNext() {
			return index<size;
		}

		public E next() {
			return get(index++);
		}

		public void remove() {
			
		};
		
	}
}

public class Test {
public static void main(String[] args) {
	MyArrayList<String> list=new MyArrayList<String>();
	list.add("wwww我");
	list.add("a");
	list.add("为");
	list.add("人");
	list.add("g");
	list.add("盘");
	list.add("才v");

	System.out.println("集合元素个数:"+list.getSize());
	System.out.println("集合大小:"+list.InitSize);
	for(Object s:list){
		System.out.println(s);
	}
}
/**运行结果:
 	集合元素个数:7
	集合大小:9
	wwww我
	a
	为
	人
	g
	盘
	才v
 */
}

本文转自: http://blog.csdn.net/wxwzy738/article/details/7604801
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值