@Override public MappeableArrayContainer iandNot(final MappeableArrayContainer value2) { if (!BufferUtil.isBackedBySimpleArray(this.content)) throw new RuntimeException("Should not happen. Internal bug."); if (BufferUtil.isBackedBySimpleArray(value2.content)) this.cardinality = org.roaringbitmap.Util.unsignedDifference( this.content.array(), this.getCardinality(), value2.content.array(), value2.getCardinality(), this.content.array()); else this.cardinality = BufferUtil.unsignedDifference( this.content, this.getCardinality(), value2.content, value2.getCardinality(), this.content.array()); return this; }
@Override public MappeableArrayContainer andNot(final MappeableArrayContainer value2) { final MappeableArrayContainer value1 = this; final int desiredCapacity = value1.getCardinality(); final MappeableArrayContainer answer = new MappeableArrayContainer(desiredCapacity); if (BufferUtil.isBackedBySimpleArray(value1.content) && BufferUtil.isBackedBySimpleArray(value2.content)) answer.cardinality = org.roaringbitmap.Util.unsignedDifference( value1.content.array(), value1.getCardinality(), value2.content.array(), value2.getCardinality(), answer.content.array()); else answer.cardinality = BufferUtil.unsignedDifference( value1.content, value1.getCardinality(), value2.content, value2.getCardinality(), answer.content.array()); return answer; }