자바 교체 기 모드

장면
4.567917.취 합 대상 을 옮 겨 다 닐 수 있 는 방식 을 제공 합 니 다.커서 커서 모드
취 합 대상:데이터 저장교체 기:데이터 옮 겨 다 니 기JDK 내 장 된 교체 기(List/set)

package com.qianyu.gof.iterator;

import java.util.ArrayList;
import java.util.Iterator;

/**
 * @author lijing
 * @date 2019-04-10-14:38
 * @discroption JDK        
 */
public class IteratorTest {
  public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    Iterator<String> iter = list.iterator();
    //hasNext()          
    while (iter.hasNext()) {
      //next()        ,         
      System.out.println(iter.next());
    }
  }
}
수 동 실현 교체 기

package com.qianyu.gof.iterator;

/**
 * @author lijing
 * @date 2019-04-10-14:37
 * @discroption      
 */
public interface MyIterator {
  /**
   *           
   *
   * @return
   */
  boolean hasNext();

  /**
   *       ,           
   *
   * @return
   */
  Object next();
}

package com.qianyu.gof.iterator;

import java.util.ArrayList;
import java.util.List;

/**
 * @author lijing
 * @date 2019-04-10-19:18
 * @discroption       
 */
public class MyList {
  List<Object> list = new ArrayList<Object>();

  public boolean add(Object obj) {
    return list.add(obj);
  }

  public boolean remove(Object obj) {
    return list.remove(obj);
  }

  /**
   *        
   *
   * @return
   */
  public ConcreteIterator iterator() {
    return new ConcreteIterator();
  }

  /**
   *       ,            
   */
  private class ConcreteIterator implements MyIterator {
    //  
    private int cursor = 0;

    @Override
    public boolean hasNext() {
      return this.cursor < list.size();
    }

    @Override
    public Object next() {
      return list.get(cursor++);
    }
  }
}

package com.qianyu.gof.iterator;

/**
 * @author lijing
 * @date 2019-04-10-19:14
 * @discroption          (     )
 */
public class IteratorTest2 {
  public static void main(String[] args) {
    MyList myList = new MyList();
    myList.add("aa");
    myList.add("bb");
    myList.add("cc");
    MyIterator iter = myList.iterator();
    while (iter.hasNext()){
      System.out.println(iter.next());
    }
  }
}
UML 도표:

위 에서 말 한 것 은 소 편 이 소개 한 자바 교체 기 모델 의 상세 한 해석 과 통합 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기