Java 設計模式 之 叠代器模式
阿新 • • 發佈:2018-06-28
ret ref ext In pre TP sta ole ()
http://www.verejava.com/?id=16999127808571
package com.iterator.theory; import java.util.Arrays; public class TestIterator { public static void main(String[] args) { List list=new ArrayList(); list.add("李陽"); list.add("王濤"); list.add("張颯"); Iterator iter=list.iterator(); while(iter.hasNext()) { Object obj=iter.next(); System.out.println(obj); } } } package com.iterator.theory; public interface Iterator { public boolean hasNext(); public Object next(); } package com.iterator.theory; public class IteratorImpl implements Iterator { private int index; private List list; public IteratorImpl(List list) { this.list=list; } @Override public boolean hasNext() { return index<list.size(); } @Override public Object next() { Object element=null; if(index<list.size()) { element=list.get(index); index++; } return element ; } } package com.iterator.theory; public interface List { public void add(Object element); public Object get(int index); public int size(); public Iterator iterator(); } package com.iterator.theory; import java.util.Arrays; public class ArrayList implements List { private int initCapacit=20; private int size; private Object[] elementData; public ArrayList() { elementData=new Object[initCapacit]; } @Override public void add(Object element) { if(size<initCapacit) { elementData[size]=element; size++; } else { elementData=Arrays.copyOf(elementData, size); elementData[size]=element; size++; } } @Override public Object get(int index) { return elementData[index]; } @Override public int size() { return size; } @Override public Iterator iterator() { return new IteratorImpl(this); } }
http://www.verejava.com/?id=16999127808571
Java 設計模式 之 叠代器模式