@Override
  public MappeableArrayContainer andNot(MappeableBitmapContainer value2) {

    final MappeableArrayContainer answer = new MappeableArrayContainer(content.limit());
    int pos = 0;
    short[] sarray = answer.content.array();
    if (BufferUtil.isBackedBySimpleArray(this.content)) {
      short[] c = content.array();
      for (int k = 0; k < cardinality; ++k) if (!value2.contains(c[k])) sarray[pos++] = c[k];
    } else
      for (int k = 0; k < cardinality; ++k) {
        short v = this.content.get(k);
        if (!value2.contains(v)) sarray[pos++] = v;
      }
    answer.cardinality = pos;
    return answer;
  }
 @Override
 public MappeableArrayContainer iandNot(MappeableBitmapContainer value2) {
   if (!BufferUtil.isBackedBySimpleArray(this.content))
     throw new RuntimeException("Should not happen. Internal bug.");
   short[] c = this.content.array();
   int pos = 0;
   for (int k = 0; k < cardinality; ++k) if (!value2.contains(c[k])) c[pos++] = c[k];
   this.cardinality = pos;
   return this;
 }
 @Override
 public MappeableContainer iand(MappeableBitmapContainer value2) {
   int pos = 0;
   for (int k = 0; k < cardinality; ++k) {
     short v = this.content.get(k);
     if (value2.contains(v)) this.content.put(pos++, v);
   }
   cardinality = pos;
   return this;
 }