docs: public static MutableRoaringBitmap and(final MutableRoaringBitmap x1,
        final MutableRoaringBitmap x2) {
      final MutableRoaringBitmap answer = new MutableRoaringBitmap();
      int pos1 = 0, pos2 = 0;
      final int length1 = x1.highLowContainer.size(), length2 = x2.highLowContainer.size();
  
      while (pos1 < length1 && pos2 < length2) {
        final short s1 = x1.highLowContainer.getKeyAtIndex(pos1);
        final short s2 = x2.highLowContainer.getKeyAtIndex(pos2);
  
        if (s1 == s2) {
          final MappeableContainer c1 = x1.highLowContainer.getContainerAtIndex(pos1);
          final MappeableContainer c2 = x2.highLowContainer.getContainerAtIndex(pos2);
          final MappeableContainer c = c1.and(c2);
          if (!c.isEmpty()) {
            answer.getMappeableRoaringArray().append(s1, c);
          }
          ++pos1;
          ++pos2;
        } else if (Util.compareUnsigned(s1, s2) < 0) { // s1 < s2
          pos1 = x1.highLowContainer.advanceUntil(s2, pos1);
        } else { // s1 > s2
          pos2 = x2.highLowContainer.advanceUntil(s1, pos2);
        }
      }
      return answer;
    }