本文整理汇总了Java中org.roaringbitmap.RoaringBitmap.getCardinality方法的典型用法代码示例。如果您正苦于以下问题:Java RoaringBitmap.getCardinality方法的具体用法?Java RoaringBitmap.getCardinality怎么用?Java RoaringBitmap.getCardinality使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.roaringbitmap.RoaringBitmap
的用法示例。
在下文中一共展示了RoaringBitmap.getCardinality方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: matchCaseInsensitiveOr
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
private void matchCaseInsensitiveOr(TagMatcher t, Map<Integer, String> valuesWithMetricIds,
List<RoaringBitmap> resultantMap) {
RoaringBitmap iLiteralMatches = new RoaringBitmap();
final String[] split = t.tag.value.split("\\|");
if (split.length > 0) {
valuesWithMetricIds.entrySet().stream()
.filter(entry -> caseInsensitiveTagValueMatch(split, entry.getValue()))
.forEach(entry -> iLiteralMatches.add(entry.getKey()));
}
if (iLiteralMatches.getCardinality() > 0) {
resultantMap.add(iLiteralMatches);
} else {
resultantMap.add(EMPTY_BITMAP);
}
}
示例2: generateEdgesInCommunity
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
private void generateEdgesInCommunity(RoaringBitmap community) {
Iterator<Integer> iter = community.iterator();
while (iter.hasNext()) {
int nodeA = iter.next();
Iterator<Integer> iter2 = community.iterator();
while (iter2.hasNext()) {
int nodeB = iter2.next();
if (nodeA < nodeB) {
double prob = random.nextDouble();
if (prob < p[community.getCardinality() - 1]) {
adjacencyMatrix[nodeA].add(nodeB);
adjacencyMatrix[nodeB].add(nodeA);
}
}
}
}
}
示例3: matchRegEx
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
private void matchRegEx(TagMatcher t, Map<Integer, String> valuesWithMetricIds,
List<RoaringBitmap> resultMap) {
Pattern pattern = Pattern.compile(t.tag.value);
RoaringBitmap regExpMatches = new RoaringBitmap();
valuesWithMetricIds.entrySet().stream()
.filter(entry -> pattern.matcher(entry.getValue()).find())
.forEach(entry -> regExpMatches.add(entry.getKey()));
if (regExpMatches.getCardinality() > 0) {
resultMap.add(regExpMatches);
} else {
resultMap.add(EMPTY_BITMAP);
}
}
示例4: matchWildcard
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
private void matchWildcard(TagMatcher t, Map<Integer, String> valuesWithMetricIds,
List<RoaringBitmap> resultMap) {
final boolean caseInsensitive = t.type.equals(MatchType.IWILDCARD);
String actual = caseInsensitive ? t.tag.value.toLowerCase() : t.tag.value;
// Parse wild card string
boolean hasPostfix;
boolean hasPrefix;
String[] components;
if (actual.charAt(0) == '*') {
hasPostfix = true;
while (actual.charAt(0) == '*') {
if (actual.length() < 2) {
break;
}
actual = actual.substring(1);
}
} else {
hasPostfix = false;
}
if (actual.charAt(actual.length() - 1) == '*') {
hasPrefix = true;
while (actual.charAt(actual.length() - 1) == '*') {
if (actual.length() < 2) {
break;
}
actual = actual.substring(0, actual.length() - 1);
}
} else {
hasPrefix = false;
}
if (actual.indexOf('*') > 0) {
components = actual.split("\\*");
} else {
components = new String[1];
components[0] = actual;
}
// Match the wildcard string
RoaringBitmap wildcardMatches = new RoaringBitmap();
valuesWithMetricIds.entrySet().stream()
.filter(entry -> matchTagsWithWildcard(hasPostfix, hasPrefix, components,
caseInsensitive ? entry.getValue().toLowerCase() : entry.getValue()))
.forEach(entry -> wildcardMatches.add(entry.getKey()));
if (wildcardMatches.getCardinality() > 0) {
resultMap.add(wildcardMatches);
} else {
resultMap.add(EMPTY_BITMAP);
}
}
示例5: threeOverlappingInputBitmapsProducesSingleSortedBitmap
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Test
public void threeOverlappingInputBitmapsProducesSingleSortedBitmap() {
int[] inputs = new int[6];
RoaringBitmap inputBitmap1 = new RoaringBitmap();
int input1 = 23615000;
int input2 = 23616440;
inputBitmap1.add(input1);
inputBitmap1.add(input2);
inputs[0] = input1;
inputs[1] = input2;
RoaringBitmapAggregator roaringBitmapAggregator = new RoaringBitmapAggregator();
RoaringBitmap state = roaringBitmapAggregator.apply(inputBitmap1, null);
assertEquals(state, inputBitmap1);
RoaringBitmap inputBitmap2 = new RoaringBitmap();
int input3 = 23615003;
int input4 = 23615018;
inputBitmap2.add(input3);
inputBitmap2.add(input4);
inputs[2] = input3;
inputs[3] = input4;
state = roaringBitmapAggregator.apply(state, inputBitmap2);
RoaringBitmap inputBitmap3 = new RoaringBitmap();
int input5 = 23615002;
int input6 = 23615036;
inputBitmap3.add(input5);
inputBitmap3.add(input6);
inputs[4] = input5;
inputs[5] = input6;
state = roaringBitmapAggregator.apply(state, inputBitmap3);
Arrays.sort(inputs);
int outPutBitmapSize = state.getCardinality();
assertEquals(6, outPutBitmapSize);
int i = 0;
for (final Integer value : state) {
assertEquals((Integer) inputs[i], value);
i++;
}
}
示例6: cardinality
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public long cardinality(RoaringBitmap bitmap) {
return bitmap == null ? -1 : bitmap.getCardinality();
}
示例7: containsAll
import org.roaringbitmap.RoaringBitmap; //导入方法依赖的package包/类
@Override
public boolean containsAll(RoaringBitmap container, RoaringBitmap contained) {
RoaringBitmap intersection = RoaringBitmap.and(container, contained);
return intersection.getCardinality() == contained.getCardinality();
}