
速记Arraylist Iterator遍历方法定义迭代器模式Iterator提供一种方法顺序访问一个聚合对象中的各种元素而又不暴露该对象的内部表示。场景(1)访问一个聚合对象的内容而无需暴露它的内部表示(2)支持对聚合对象的多种遍历(3)为遍历不同的聚合结构提供一个统一的接口类图实现com.haiwei.behavior.iterator 迭代器接口 public interface HaiweiIterator { boolean hasNext(); String next(); } List的接口 public interface HaiweiList { HaiweiIterator iterator(); void add(String val); } 具体List类 public class MyList implements HaiweiList { //记录修改的次数 private int modeCount 0; //记录List的最大长度 private int capcity 10; //当前列表的大小 private int size 0; //记录数据 private String [] list new String[capcity]; public HaiweiIterator iterator() { return new MyIterator(); } public void add(String val) { list[size] val; modeCount ; } /** * 迭代器应该是MyList的内容类 * 除了MyList其他都没法创建 */ private class MyIterator implements HaiweiIterator { //当前元素位置指针 private int currentpoit -1; //修改次数 private int tempModeCount -1; public MyIterator(){ currentpoit 0; //在创建迭代器的时候记录当前列表修改的次数 tempModeCount modeCount; } public boolean hasNext() { return currentpoit size; } public String next() { //如果遍历的过程中修改了列表就报错 if(modeCount ! tempModeCount){ throw new RuntimeException(列表已经修改); } return list[currentpoit]; } } } 调用类 public class Test1 { public static void main(String[] args) { MyList list new MyList(); list.add(111); list.add(222); list.add(333); HaiweiIterator iterator list.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } }