当前位置: 首页>>代码示例>>Java>>正文


Java RoaringBitmap类代码示例

本文整理汇总了Java中org.roaringbitmap.RoaringBitmap的典型用法代码示例。如果您正苦于以下问题:Java RoaringBitmap类的具体用法?Java RoaringBitmap怎么用?Java RoaringBitmap使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


RoaringBitmap类属于org.roaringbitmap包,在下文中一共展示了RoaringBitmap类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: toRoaringBitmapIterator

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
private Iterator<RoaringBitmap> toRoaringBitmapIterator(final Iterable<Bitmap> bitmaps) {
  return new Iterator<RoaringBitmap>() {
    final Iterator<Bitmap> i = bitmaps.iterator();

    @Override
    public boolean hasNext() {
      return i.hasNext();
    }


    @Override
    public void remove() {
      throw new UnsupportedOperationException();
    }


    @Override
    public RoaringBitmap next() {
      return ((RoaringBitmapWrapper) i.next()).bitmap;
    }
  };
}
 
开发者ID:lemire,项目名称:java_vs_c_bitmap_benchmark,代码行数:23,代码来源:RoaringBitmapWrapper.java

示例2: matchOr

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
private void matchOr(TagMatcher t, List<RoaringBitmap> resultantMap) {
  // TODO: Add more validation for this expression here.
  final String[] split = t.tag.value.split("\\|");
  List<RoaringBitmap> orMaps = new ArrayList<>();
  for (int i = 0; i < split.length; i++) {
    if (!split[i].isEmpty()) {
      final String tagValuePair = t.tag.key + "=" + split[i];
      if (metricIndex.containsKey(tagValuePair)) {
        orMaps.add(lookupMetricIndex(tagValuePair));
      }
    }
  }

  if (orMaps.isEmpty()) {
    resultantMap.add(EMPTY_BITMAP); // If no exact match is present, return empty result.
  } else {
    resultantMap.add(FastAggregation.or(orMaps.iterator()));
  }
}
 
开发者ID:pinterest,项目名称:yuvi,代码行数:20,代码来源:InvertedIndexTagStore.java

示例3: 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);
  }
}
 
开发者ID:pinterest,项目名称:yuvi,代码行数:19,代码来源:InvertedIndexTagStore.java

示例4: getValuesForMetricKey

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
/**
 * Given a metric name, extract all the values associated for the given key.
 */
@VisibleForTesting
public Map<Integer, String> getValuesForMetricKey(String metricName, String key) {
  List<RoaringBitmap> andBitMaps = new ArrayList<>();

  if (metricIndex.containsKey(metricName)) {
    andBitMaps.add(lookupMetricIndex(metricName));
  } else {
    andBitMaps.add(EMPTY_BITMAP);
  }

  if (metricIndex.containsKey(key)) {
    andBitMaps.add(lookupMetricIndex(key));
  } else {
    andBitMaps.add(EMPTY_BITMAP);
  }

  RoaringBitmap resultBitMap = FastAggregation.and(andBitMaps.iterator());
  HashMap<Integer, String> resultMap = new HashMap<>();
  for (int i : resultBitMap.toArray()) {
    resultMap.put(i, extractTagValueForTagKey(metricIdMap.get(i), key));
  }
  return resultMap;
}
 
开发者ID:pinterest,项目名称:yuvi,代码行数:27,代码来源:InvertedIndexTagStore.java

示例5: writeValue

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@Override
final protected void writeValue(final Collection<V> collection, final ObjectOutput out)
		throws IOException, ReflectiveOperationException {
	final NullableArray array = getNullableArray(collection.size());
	final RoaringBitmap nullBitmap = new RoaringBitmap();
	int i = 0;
	for (final V value : collection) {
		if (value == null)
			nullBitmap.add(i);
		else
			array.set(i, value);
		i++;
	}
	nullBitmap.writeExternal(out);
	ArrayExternalizer.writeBytes(array.compress(), out);
}
 
开发者ID:qwazr,项目名称:externalizor,代码行数:17,代码来源:CollectionExternalizer.java

示例6: readObject

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@Override
final public Collection<Boolean> readObject(final ObjectInput in)
		throws IOException, ReflectiveOperationException {
	if (!in.readBoolean())
		return null;
	final Collection<Boolean> collection = constructor.newInstance();
	final boolean[] array = new boolean[in.readInt()];
	final RoaringBitmap nullBitmap = new RoaringBitmap();
	final RoaringBitmap booleanBitmap = new RoaringBitmap();
	nullBitmap.readExternal(in);
	booleanBitmap.readExternal(in);
	for (int i = 0; i < array.length; i++) {
		if (nullBitmap.contains(i))
			collection.add(null);
		else
			collection.add(booleanBitmap.contains(i));
	}
	return collection;
}
 
开发者ID:qwazr,项目名称:externalizor,代码行数:20,代码来源:CollectionExternalizer.java

示例7: variableIndex

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@Nonnull
private int[] variableIndex(@Nonnull final Matrix x, @Nonnull final int[] bags) {
    final IntReservoirSampler sampler = new IntReservoirSampler(_numVars, _rnd.nextLong());
    if (x.isSparse()) {
        final RoaringBitmap cols = new RoaringBitmap();
        final VectorProcedure proc = new VectorProcedure() {
            public void apply(final int col) {
                cols.add(col);
            }
        };
        for (final int row : bags) {
            x.eachColumnIndexInRow(row, proc);
        }
        cols.forEach(new IntConsumer() {
            public void accept(final int k) {
                sampler.add(k);
            }
        });
    } else {
        for (int i = 0, size = _attributes.length; i < size; i++) {
            sampler.add(i);
        }
    }
    return sampler.getSample();
}
 
开发者ID:apache,项目名称:incubator-hivemall,代码行数:26,代码来源:DecisionTree.java

示例8: testCanSerialiseAndDeserialise

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@Test
public void testCanSerialiseAndDeserialise() throws IOException {
    final ByteArrayBuilder byteArrayBuilder = new ByteArrayBuilder();
    JsonGenerator jsonGenerator = JSON_FACTORY.createGenerator(byteArrayBuilder);
    RoaringBitmap testBitmap = new RoaringBitmap();
    testBitmap.add(2);
    testBitmap.add(3000);
    testBitmap.add(300000);
    for (int i=400000; i<500000; i+=2) {
        testBitmap.add(i);
    }
    SERIALISER.serialize(testBitmap, jsonGenerator, null);
    jsonGenerator.flush();
    byte[] serialisedBitmap = byteArrayBuilder.toByteArray();
    JsonParser parser = JSON_FACTORY.createParser(serialisedBitmap);
    parser.setCodec(new ObjectMapper());
    Object o = DESERIALISER.deserialize(parser, null);
    assertEquals(RoaringBitmap.class, o.getClass());
    assertEquals(testBitmap, o);
}
 
开发者ID:gchq,项目名称:Gaffer,代码行数:21,代码来源:RoaringBitmapJsonSerialisationTest.java

示例9: testCanSerialiseAndDeserialiseWithRuns

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@Test
public void testCanSerialiseAndDeserialiseWithRuns() throws IOException {
    final ByteArrayBuilder byteArrayBuilder = new ByteArrayBuilder();
    JsonGenerator jsonGenerator = JSON_FACTORY.createGenerator(byteArrayBuilder);
    RoaringBitmap testBitmap = new RoaringBitmap();
    testBitmap.add(2);
    testBitmap.add(3000);
    testBitmap.add(300000);
    for (int i=400000; i<500000; i+=2) {
        testBitmap.add(i);
    }
    testBitmap.runOptimize();
    SERIALISER.serialize(testBitmap, jsonGenerator, null);
    jsonGenerator.flush();
    byte[] serialisedBitmap = byteArrayBuilder.toByteArray();
    JsonParser parser = JSON_FACTORY.createParser(serialisedBitmap);
    parser.setCodec(new ObjectMapper());
    Object o = DESERIALISER.deserialize(parser, null);
    assertEquals(RoaringBitmap.class, o.getClass());
    assertEquals(testBitmap, o);
}
 
开发者ID:gchq,项目名称:Gaffer,代码行数:22,代码来源:RoaringBitmapJsonSerialisationTest.java

示例10: testCanSerialiseWithCustomObjectMapper

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@Test
public void testCanSerialiseWithCustomObjectMapper() throws IOException {
    //Bitmap of (2,3000,300000) serialised in 0.5.11 Roaring Bitmap base 64 encoded
    String serialisedComparisonBitmap = "{\"roaringBitmap\":{\"value\":\"OjAAAAIAAAAAAAEABAAAABgAAAAcAAAAAgC4C+CT\"}}";
    RoaringBitmap comparisonBitmap = new RoaringBitmap();
    comparisonBitmap.add(2);
    comparisonBitmap.add(3000);
    comparisonBitmap.add(300000);
    final ObjectMapper mapper = JSONSerialiser.createDefaultMapper();
    final SimpleModule bitmapModule = new SimpleModule(RoaringBitmapConstants.BITMAP_MODULE_NAME, new Version(1, 0, 9, null, null, null));
    bitmapModule.addSerializer(RoaringBitmap.class, new RoaringBitmapJsonSerialiser());
    bitmapModule.addDeserializer(RoaringBitmap.class, new RoaringBitmapJsonDeserialiser());
    mapper.registerModule(bitmapModule);
    RoaringBitmap testBitmap = mapper.readValue(serialisedComparisonBitmap, RoaringBitmap.class);
    assertEquals(comparisonBitmap, testBitmap);
    String serialisedBitmap = mapper.writeValueAsString(testBitmap);
    assertEquals(serialisedBitmap, serialisedComparisonBitmap);
}
 
开发者ID:gchq,项目名称:Gaffer,代码行数:19,代码来源:RoaringBitmapJsonSerialisationTest.java

示例11: deserialise

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@Override
public RBMBackedTimestampSet deserialise(final byte[] allBytes, final int offset, final int length) throws SerialisationException {
    if (allBytes.length == 0 || length == 0) {
        return null;
    }
    final int bucketInt = (int) CompactRawSerialisationUtils.readLong(allBytes, offset);
    final int numBytesForInt = CompactRawSerialisationUtils.decodeVIntSize(allBytes[offset]);
    final TimeBucket bucket = TimeBucket.values()[bucketInt];
    final RBMBackedTimestampSet rbmBackedTimestampSet = new RBMBackedTimestampSet(bucket);
    final RoaringBitmap rbm = new RoaringBitmap();
    try {
        // Deal with different versions of RoaringBitmap
        final byte[] convertedBytes = RoaringBitmapUtils.upConvertSerialisedForm(allBytes, offset + numBytesForInt, length - numBytesForInt);
        final ByteArrayInputStream baisConvertedBytes = new ByteArrayInputStream(convertedBytes);
        final DataInputStream disConvertedBytes = new DataInputStream(baisConvertedBytes);
        rbm.deserialize(disConvertedBytes);
    } catch (final IOException e) {
        throw new SerialisationException("IOException deserialising RoaringBitmap from byte array", e);
    }
    rbmBackedTimestampSet.setRbm(rbm);
    return rbmBackedTimestampSet;
}
 
开发者ID:gchq,项目名称:Gaffer,代码行数:23,代码来源:RBMBackedTimestampSetSerialiser.java

示例12: 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);
                }
            }
        }
    }
}
 
开发者ID:ldbc,项目名称:ldbc_snb_datagen,代码行数:18,代码来源:BTERKnowsGenerator.java

示例13: add

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@Override
public void add(Object value)
{
    if (value == null)
    {
        if (!hasNullValues)
        {
            hasNullValues = true;
            isNullBitMap = new RoaringBitmap();
        }
        addFloat(0);
        isNullBitMap.add(size - 1);
        return;
    }
    addFloat(((Number) value).floatValue());
}
 
开发者ID:linkedin,项目名称:Cubert,代码行数:17,代码来源:FloatArrayList.java

示例14: addInPlace

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
private boolean addInPlace(RoaringBitmap bitmap, int... indexes) {
    if (indexes.length == 1) {
        bitmap.add(indexes[0]);
    } else if (indexes.length > 1) {
        int rangeStart = 0;
        for (int rangeEnd = 1; rangeEnd < indexes.length; rangeEnd++) {
            if (indexes[rangeEnd - 1] + 1 != indexes[rangeEnd]) {
                if (rangeStart == rangeEnd - 1) {
                    bitmap.add(indexes[rangeStart]);
                } else {
                    bitmap.add(indexes[rangeStart], indexes[rangeEnd - 1] + 1);
                }
                rangeStart = rangeEnd;
            }
        }
        if (rangeStart == indexes.length - 1) {
            bitmap.add(indexes[rangeStart]);
        } else {
            bitmap.add(indexes[rangeStart], indexes[indexes.length - 1] + 1);
        }
    }
    return true;
}
 
开发者ID:jivesoftware,项目名称:miru,代码行数:24,代码来源:MiruBitmapsRoaring.java

示例15: singleEntryTimeIndexDataProvider

import org.roaringbitmap.RoaringBitmap; //导入依赖的package包/类
@DataProvider(name = "singleEntryTimeIndexDataProvider")
public Object[][] singleEntryTimeIndexDataProvider() throws Exception {
    StackBuffer stackBuffer = new StackBuffer();

    final long[] timestamps = new long[] { System.currentTimeMillis() };
    MiruContext<RoaringBitmap, RoaringBitmap, RCVSSipCursor> chunkInMemoryTimeIndex = buildInMemoryTimeIndex(false);
    MiruContext<RoaringBitmap, RoaringBitmap, RCVSSipCursor> labInMemoryTimeIndex = buildInMemoryTimeIndex(true);
    MiruContext<RoaringBitmap, RoaringBitmap, RCVSSipCursor> chunkOnDiskTimeIndex = buildOnDiskTimeIndex(false);
    MiruContext<RoaringBitmap, RoaringBitmap, RCVSSipCursor> labOnDiskTimeIndex = buildOnDiskTimeIndex(true);

    int[] ids = new int[timestamps.length];
    long[] monotonics = new long[timestamps.length];
    Arrays.fill(ids, -1);
    Arrays.fill(monotonics, -1);
    chunkInMemoryTimeIndex.timeIndex.nextId(stackBuffer, timestamps, ids.clone(), monotonics.clone());
    labInMemoryTimeIndex.timeIndex.nextId(stackBuffer, timestamps, ids.clone(), monotonics.clone());
    chunkOnDiskTimeIndex.timeIndex.nextId(stackBuffer, timestamps, ids.clone(), monotonics.clone());
    labOnDiskTimeIndex.timeIndex.nextId(stackBuffer, timestamps, ids.clone(), monotonics.clone());

    return new Object[][] {
        { new MiruBitmapsRoaring(), chunkInMemoryTimeIndex },
        { new MiruBitmapsRoaring(), labInMemoryTimeIndex },
        { new MiruBitmapsRoaring(), chunkOnDiskTimeIndex },
        { new MiruBitmapsRoaring(), labOnDiskTimeIndex }
    };
}
 
开发者ID:jivesoftware,项目名称:miru,代码行数:27,代码来源:MiruBitmapsTimeRangeTest.java


注:本文中的org.roaringbitmap.RoaringBitmap类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。