<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ?**定義**:它提供一個方法訪問一個容器對象中的各個元素,而又不需要暴露該對象的內部細節。 這個在javaAPI中已經封裝的很好了,任何一個容器的遍歷都可以使用Iterator來迭代。 ![](https://box.kancloud.cn/2016-06-06_5755340b68b90.jpg) ## 一般模式: Iterator抽象迭代器 抽象迭代器負責定義訪問和遍歷元素的接口,基本上有三個方法。next()、hasNext()、remove(); ConcreteIterator具體迭代器 具體迭代器角色要實現迭代器的接口,完成容器元素的遍歷。 Aggregate抽象容器 容器角色負責提供創建具體迭代器角色的接口,必然提供一個類似iterator()方法 Concrete Aggregate具體容器。 具體容器實現容器接口定義的方法,創建出容納迭代器的對象 ~~~ public class IteratorTest { public static void main(String[] args) { //模擬容器,添加一些信息 Aggreragte aggVector = new ConcreteAggregate(); aggVector.add("lzl"); aggVector.add("xy"); aggVector.add("daughter"); //遍歷 Iterator it = aggVector.iterator(); while(it.hasNext()){ //如果有下一個。獲取信息 String info = (String) it.next(); System.out.println("------"+info); } } } /** * 抽象的迭代器,只提供基本的方法。 * * @author admin * */ interface Iterator{ //刪除 boolean remove(); //是否還有下一個 boolean hasNext(); //找到下一個元素。 Object next(); } /** * 具體接口的實現方法 * @author admin * */ class ConcreteIterator implements Iterator{ private Vector vector ; private int cursor = 0; //構造函數,將需要遍歷的vector對象傳遞進來 public ConcreteIterator(Vector vector) { this.vector = vector; } @Override public boolean remove() { boolean flag = (boolean) this.vector.remove(this.cursor); return flag; } @Override public boolean hasNext() { if(vector.size() != cursor){ return true; } return false; } @Override public Object next() { //如果還有下一個,就返回 if(this.hasNext()){ return this.vector.get(cursor++); } return null; } } /** * 抽想的接口容器類,例如java中的List集合等. * @author admin * */ interface Aggreragte{ //增加元素 boolean add(Object obj); //創建迭代器的接口。 Iterator iterator(); //刪除元素 boolean remove(Object obj); } /** * 具體的抽象容器接口實現類,例如java中的ArrayList集合。 * @author admin * */ class ConcreteAggregate implements Aggreragte{ private Vector vector = new Vector(); @Override public Iterator iterator() { return new ConcreteIterator(this.vector); } @Override public boolean add(Object obj) { boolean flag = vector.add(obj); return flag; } @Override public boolean remove(Object obj) { boolean flag = vector.remove(obj); return flag; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看