code: @Override
    public int get(int index)
    {
      if (index < 0) {
        throw new IndexOutOfBoundsException();
      }
  
      int count = 0;
      final int[] localWords = words;       // faster
      for (int j = 0; j < firstEmptyWord; j++) {
        int w = localWords[j];
        int current = Integer.bitCount(w);
        if (index < count + current) {
          int bit = -1;
          for (int skip = index - count; skip >= 0; skip--) {
            bit = Integer.numberOfTrailingZeros(w & (ALL_ONES_WORD << (bit + 1)));
          }
          return multiplyByWordSize(j) + bit;
        }
        count += current;
      }
      throw new NoSuchElementException();
    }
docs: {@inheritDoc}