zoukankan      html  css  js  c++  java
  • 284. Peeking Iterator

    /*
     * 284. Peeking Iterator
     * 2016-6-27 by Mingyang
     * 我开始的想法是在peek的时候把next的value返回,然后copy一个iterator
     * 但是太复杂,这里只需要提前把下一个next存起来,那么每次call next的时候
     * 我们就需要把下一个的下一个再存起来
     */
    class PeekingIterator implements Iterator<Integer> {  
        private Integer next = null;
        private Iterator<Integer> iter;
        public PeekingIterator(Iterator<Integer> iterator) {
            // initialize any member here.
            iter = iterator;
            if (iter.hasNext())
                next = iter.next();
        }
        // Returns the next element in the iteration without advancing the iterator. 
        public Integer peek() {
            return next; 
        }
        // hasNext() and next() should behave the same as in the Iterator interface.
        // Override them if needed.
        @Override
        public Integer next() {
            Integer res = next;
            next = iter.hasNext() ? iter.next() : null;
            return res; 
        }
        @Override
        public boolean hasNext() {
           // return iter.hasNext();
        //这里不能用这个,因为本题的逻辑是提前预支hasNext()并且赋值为next这个变量
            return next != null;
        }
        @Override
        public void remove() {
            // TODO Auto-generated method stub
            
        }
    }
  • 相关阅读:
    jquery animate()方法 语法
    jquery unload方法 语法
    jquery undelegate()方法 语法
    jquery unbind()方法 语法
    jquery trigger() 方法 语法
    jquery toggle()方法 语法
    jquery change() 函数 语法
    jquery blur()函数 语法
    jquery bind()方法 语法
    jquery checked选择器 语法
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5622860.html
Copyright © 2011-2022 走看看