zoukankan      html  css  js  c++  java
  • 实现Iterator

    昨天同事有问到有一些Iterator是怎么知道hasNext是怎么知道还有多余元素的。呵呵,听起来有点好笑。其实也正常。我刚开始学c的结构体的时候,有一个字段是 last,我也在疑问,为什么last就是表示最后一个元素,难道last是一个关键字。

    今天看了一下jdk源码,给同事写了一份简单的例子。把代码附上,以便以后查看,怕忘了,呵呵。

    public class Test {
        
        public static void main(String[] args) {
            MyList<String> list = new MyList<String>();
            list.setData("a");
            list.setData("b");
            list.setData("c");
    
            Iterator<String> it = list.iterator();
            while(it.hasNext()){
                System.out.println(it.next());
            }
        }
    }
    
    class MyList<E> implements Iterable<E>{
        
        private int size;
        private E data;
        private List<E> dataStore;
        
        public MyList(){
            size = 0;
            dataStore = new ArrayList<E>();
        }
    
        
        public int getSize() {
            return size;
        }
    
    
        public void setSize(int size) {
            this.size = size;
        }
    
    
        public E getData() {
            return data;
        }
    
    
        public void setData(E data) {
            this.data = data;
            this.size++;
            dataStore.add(data);
        }
    
    
        @Override
        public Iterator<E> iterator() {
            return new Itr();
        }
    
    
        private class Itr implements Iterator<E>{
    
            @Override
            public boolean hasNext() {
                return size>0?true:false;
            }
    
            @Override
            public E next() {
                return dataStore.get(--size);
            }
    
            @Override
            public void remove() {
                dataStore.remove(size);
                size--;
            }
        }
    }
  • 相关阅读:
    解析iscroll-小demo
    iscroll的理解
    jquery代码小片段
    jQuery的性能优化
    事件代理
    数组方式使用jQuery对象
    循环时的dom操作
    JavaScript中的ajax(二)
    jQuery与ajax的应用(一)
    表单应用
  • 原文地址:https://www.cnblogs.com/baron89/p/3025620.html
Copyright © 2011-2022 走看看