Advertisement
SnowyCoder

HashQueueSet

Jun 24th, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.80 KB | None | 0 0
  1. public class HashQueueSet<T> extends LinkedHashSet<T> implements Queue<T> {
  2.     @Override
  3.     public boolean offer(T t) {
  4.         return add(t);
  5.     }
  6.  
  7.     @Override
  8.     public T remove() {
  9.         if(isEmpty()) throw new NoSuchElementException();
  10.         return remove0();
  11.     }
  12.  
  13.     @Override
  14.     public T poll() {
  15.         if(isEmpty()) return null;
  16.         return remove0();
  17.     }
  18.  
  19.     private T remove0() {
  20.         Iterator<T> iterator = iterator();
  21.         T t = iterator.next();
  22.         iterator.remove();
  23.         return t;
  24.     }
  25.  
  26.     @Override
  27.     public T element() {
  28.         if(isEmpty()) throw new NoSuchElementException();
  29.         return iterator().next();
  30.     }
  31.  
  32.     @Override
  33.     public T peek() {
  34.         if(isEmpty()) return null;
  35.         return iterator().next();
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement