zoukankan      html  css  js  c++  java
  • 自己实现迭代器

    package com.aaron.reflect;
    
    import java.util.ArrayList;
    import java.util.List;
    
    interface MyIterator<T>{ 
        /*提供了这个接口,不同的类自己拿去实现吧*/
         T next();  
         boolean hasNext();  
    }  
    
    class MyList<T>  { //自己制作的这个容器有2个方法,一个是添加方法,一个说获得迭代器方法
        List<T> list = new  ArrayList<T>();
       
        public void add(T item){  
            list.add(item);  
        } 
        /*省略List中固有的那些方法比如size(),remove()等*/
           
        public MyIterator<T> Iterator(){ 
            return new MyIteratorImpl<T>(); 
        }   
        /*基于链表的迭代器*/ /*自己没参照别人的情况下想到的内部类*/
        @SuppressWarnings("hiding")
        class MyIteratorImpl<T> implements MyIterator<T>{ 
            private int i = -1;  
                    
            public boolean hasNext(){  
                 return (i >= list.size()-1)? false:true;  
            }  
                    
            @SuppressWarnings("unchecked")
            public T next(){   
                i++;
                T temp =   (T) list.get(i);
                return temp;
            }         
        }  
    } 
    
    public class Test88 {
    
        public static void main(String[] args) {
            MyList<String> test = new MyList<String>();  
            test.add("Tom");  
            test.add("Linda");  
            test.add("Lisa");  
            test.add("Dony");  
            test.add("Jack");  /*即使不用迭代器也可以进行遍历*/
            MyIterator<String> it = test.Iterator();
            while(it.hasNext())
            System.out.println(it.next());
        }
    
    }

  • 相关阅读:
    Fish
    Brackets
    StoneWall【★★★★★】
    Nesting
    ajax补充FormData
    初始Ajax
    extra过滤
    Django 之缓存
    django中的信号
    Form组件归类
  • 原文地址:https://www.cnblogs.com/cs-lcy/p/7396199.html
Copyright © 2011-2022 走看看