docs: @Override
    public int size() {
      int count = 0;
      QNode h = traversalHead();
      for (QNode p = h.next; p != null && p.isData; p = p.next) {
        Object x = p.get();
        if (x != null && x != p) {
          if (++count == Integer.MAX_VALUE) {
            break;
          }
        }
      }
      return count;
    }