Advertisement
lifeiteng

284. Peeking Iterator

Sep 24th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.95 KB | None | 0 0
  1. // Java Iterator interface reference:
  2. // https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html
  3. class PeekingIterator implements Iterator<Integer> {
  4.  
  5.     Iterator<Integer> itor;
  6.     Integer next = null;
  7.     boolean f = true;
  8.     public PeekingIterator(Iterator<Integer> iterator) {
  9.         // initialize any member here.
  10.         itor = iterator;
  11.         update();
  12.     }
  13.    
  14.     void update()
  15.     {
  16.         if(!itor.hasNext())
  17.         {
  18.             f = false;
  19.             return;
  20.         }
  21.         next = itor.next();
  22.     }
  23.        
  24.  
  25.     // Returns the next element in the iteration without advancing the iterator.
  26.     public Integer peek() {
  27.         return next;
  28.     }
  29.  
  30.     // hasNext() and next() should behave the same as in the Iterator interface.
  31.     // Override them if needed.
  32.     @Override
  33.     public Integer next() {
  34.         int val = next;
  35.         update();
  36.         return val;
  37.     }
  38.  
  39.     @Override
  40.     public boolean hasNext() {
  41.         return f;
  42.     }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement