本文整理汇总了Java中org.roaringbitmap.RoaringBitmap.isEmpty方法的典型用法代码示例。如果您正苦于以下问题:Java RoaringBitmap.isEmpty方法的具体用法?Java RoaringBitmap.isEmpty怎么用?Java RoaringBitmap.isEmpty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.roaringbitmap.RoaringBitmap
的用法示例。
在下文中一共展示了RoaringBitmap.isEmpty方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: andNot
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public RoaringBitmap andNot(RoaringBitmap original, List<RoaringBitmap> bitmaps) {
if (bitmaps.isEmpty()) {
return copy(original);
} else {
RoaringBitmap container = RoaringBitmap.andNot(original, bitmaps.get(0));
for (int i = 1; i < bitmaps.size(); i++) {
container.andNot(bitmaps.get(i));
if (container.isEmpty()) {
break;
}
}
return container;
}
}
示例2: solve
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
static void solve(RoaringBitmap[] bits, int depth, int bitIndex, RoaringBitmap candidate, boolean[] output, Solution solution) {
RoaringBitmap zero = RoaringBitmap.andNot(candidate, bits[bitIndex]);
RoaringBitmap ones = RoaringBitmap.and(candidate, bits[bitIndex]);
if (bitIndex > 0) {
output[bitIndex] = true;
solve(bits, depth + 1, bitIndex - 1, ones, output, solution);
} else if (!ones.isEmpty()) {
output[bitIndex] = true;
solution.stream(output, ones.getCardinality());
}
if (bitIndex > 0) {
output[bitIndex] = false;
solve(bits, depth + 1, bitIndex - 1, zero, output, solution);
} else if (!zero.isEmpty()) {
output[bitIndex] = false;
solution.stream(output, zero.getCardinality());
}
}
示例3: andTx
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public RoaringBitmap andTx(List<MiruTxIndex<RoaringBitmap>> indexes, StackBuffer stackBuffer) throws Exception {
if (indexes.isEmpty()) {
return new RoaringBitmap();
}
RoaringBitmap container = indexes.get(0).txIndex((bitmap, filer, offset, stackBuffer1) -> {
if (bitmap != null) {
return bitmap;
} else if (filer != null) {
return bitmapFromFiler(filer, offset, stackBuffer1);
} else {
return new RoaringBitmap();
}
}, stackBuffer);
if (container.isEmpty()) {
return container;
}
for (MiruTxIndex<RoaringBitmap> index : indexes.subList(1, indexes.size())) {
RoaringBitmap and = index.txIndex((bitmap, filer, offset, stackBuffer1) -> {
if (bitmap != null) {
return bitmap;
} else if (filer != null) {
return bitmapFromFiler(filer, offset, stackBuffer1);
} else {
return new RoaringBitmap();
}
}, stackBuffer);
container.and(and);
if (container.isEmpty()) {
return container;
}
}
return container;
}
示例4: andNotTx
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public RoaringBitmap andNotTx(MiruTxIndex<RoaringBitmap> original, List<MiruTxIndex<RoaringBitmap>> not, StackBuffer stackBuffer) throws Exception {
RoaringBitmap container = original.txIndex((bitmap, filer, offset, stackBuffer1) -> {
if (bitmap != null) {
return bitmap;
} else if (filer != null) {
return bitmapFromFiler(filer, offset, stackBuffer1);
} else {
return new RoaringBitmap();
}
}, stackBuffer);
if (container.isEmpty() || not.isEmpty()) {
return container;
}
for (MiruTxIndex<RoaringBitmap> index : not) {
RoaringBitmap andNot = index.txIndex((bitmap, filer, offset, stackBuffer1) -> {
if (bitmap != null) {
return bitmap;
} else if (filer != null) {
return bitmapFromFiler(filer, offset, stackBuffer1);
} else {
return null;
}
}, stackBuffer);
if (andNot != null) {
container.andNot(andNot);
}
if (container.isEmpty()) {
return container;
}
}
return container;
}
示例5: add
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public RoaringBitmap[] add(RoaringBitmap... set) {
final int numSumBitmaps = 32 - Integer.numberOfLeadingZeros(set.length);
int lastBitSlice = 0;
RoaringBitmap[] acc = new RoaringBitmap[numSumBitmaps + 1]; // null
// sentinel
// at end
acc[0] = set[0];
for (int k = 1; k < set.length; ++k) {
RoaringBitmap c = RoaringBitmap.and(set[k], acc[0]);
if (k == 1)
acc[0] = RoaringBitmap.xor(acc[0], set[k]);
else
acc[0].xor(set[k]);
int i;
for (i = 1; acc[i] != null; ++i) {
RoaringBitmap temp1 = RoaringBitmap.xor(acc[i], c);
c.and(acc[i]);
acc[i] = temp1;
}
if (!c.isEmpty()) {
acc[i] = c;
lastBitSlice = i;
}
}
return Arrays.copyOf(acc, lastBitSlice + 1);
}
示例6: add
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
/**
* Returns as few bitmaps as needed, the first one carrying the least
* significant bits.
*
* @param a
* @param b
* @return
*/
public static RoaringBitmap[] add(RoaringBitmap[] a, RoaringBitmap[] b) {
int mini = Math.min(a.length, b.length);
int maxi = Math.max(a.length, b.length);
ArrayList<RoaringBitmap> answer = new ArrayList<RoaringBitmap>(maxi + 1);
int i = 0;
RoaringBitmap carry = new RoaringBitmap();
if (mini > 0) {
answer.add(RoaringBitmap.xor(a[i], b[i]));
carry = RoaringBitmap.and(a[i], b[i]);
++i;
}
for (; i < mini; ++i) {
RoaringBitmap tmp = RoaringBitmap.xor(a[i], b[i]);
answer.add(RoaringBitmap.xor(carry, tmp));
carry.and(tmp);
carry.or(RoaringBitmap.and(a[i], b[i]));
}
if (mini != maxi) {
RoaringBitmap[] longest = a.length > b.length ? a : b;
for (; i < maxi; ++i) {
if (carry.isEmpty()) {
answer.add(longest[i].clone());
} else {
answer.add(RoaringBitmap.xor(carry, longest[i]));
carry.and(longest[i]);
}
}
}
if (!carry.isEmpty())
answer.add(carry);
return answer.toArray(a);
}
示例7: isEmpty
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public boolean isEmpty(RoaringBitmap bitmap) {
return bitmap.isEmpty();
}
示例8: firstSetBit
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public int firstSetBit(RoaringBitmap bitmap) {
return bitmap.isEmpty() ? -1 : bitmap.first();
}
示例9: lastSetBit
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public int lastSetBit(RoaringBitmap bitmap) {
return bitmap.isEmpty() ? -1 : bitmap.last();
}
示例10: containsAny
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public boolean containsAny(RoaringBitmap container, RoaringBitmap contained) {
RoaringBitmap intersection = RoaringBitmap.and(container, contained);
return !intersection.isEmpty();
}