Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
study:java:design_pattern:iterator [2008/09/13 03:53] bananastudy:java:design_pattern:iterator [2008/09/13 04:03] (現在) banana
行 21: 行 21:
  
 이제 클래스 다이어그램을 살펴보도록 할까요? 이제 클래스 다이어그램을 살펴보도록 할까요?
 +
  
 ===== Class Diagram ===== ===== Class Diagram =====
 {{:study:java:design_pattern:iterator.jpg|Iterator Pattern}} {{:study:java:design_pattern:iterator.jpg|Iterator Pattern}}
 +
 +%%ConcreteIterator%% 구상클래스의 예로 배열에 대해 Iterator 인터페이스를 구현해 보겠습니다.
 +
 +===== Implement an Iterator interface =====
 +<code java>
 +import java.util.Iterator;
 +
 +public class DinnerMenuIterator implements Iterator{
 +    MenuItem[] list;
 +    int position = 0;
 +
 +    public DinnerMenuIterator(MenuItem[] list){
 +       this.list = list;
 +    }
 +     
 +    public Object next(){
 +       MenuItem menuItem = items[position];
 +       position = position + 1;
 +       return menuItem;
 +    }
 +
 +    public boolean hasNext(){
 +       if(position >= items.length || items[position] == null){
 +          return false;
 +       } else {
 +          return true;
 +       }
 +    }
 +
 +    public void remove(){
 +       if(position <= 0){
 +          throw new IllegalStateException("next()를 한번도 호출하지 않은 상태에서는 삭제할 수 없습니다.");
 +       }
 +       if(list[position-1] !=null){
 +          for(int i = position-1; i < (list.length-1); i++) {
 +             list[i] = list[i+1];
 +          }
 +          list[list.length-1] = null;
 +       }
 +    }
 +}
 +
 +</code>
  

QR Code
QR Code study:java:design_pattern:iterator (generated for current page)