code: @Override
      public E remove() {
          E x = poll();
          if (x == null)
              throw new NoSuchElementException();
          return x;
      }
docs: Retrieves and removes the head of the queue represented by this queue.
  
  This method differs from {@link #poll poll} only in that it throws an
  exception if this queue is empty.
  
  @return the head of the queue represented by this queue
  @throws NoSuchElementException {@inheritDoc}