@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; }