com.carrotsearch.hppc.ObjectIntHashMap.rehash()方法的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(3.4k)|赞(0)|评价(0)|浏览(65)

本文整理了Java中com.carrotsearch.hppc.ObjectIntHashMap.rehash()方法的一些代码示例,展示了ObjectIntHashMap.rehash()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ObjectIntHashMap.rehash()方法的具体详情如下:
包路径:com.carrotsearch.hppc.ObjectIntHashMap
类名称:ObjectIntHashMap
方法名:rehash

ObjectIntHashMap.rehash介绍

[英]Rehash from old buffers to new buffers.
[中]将旧缓冲区重新设置为新缓冲区。

代码示例

代码示例来源:origin: carrotsearch/hppc

/**
 * Ensure this container can hold at least the
 * given number of keys (entries) without resizing its buffers.
 * 
 * @param expectedElements The total number of keys, inclusive.
 */
@Override
public void ensureCapacity(int expectedElements) {
 if (expectedElements > resizeAt || keys == null) {
  final KType[] prevKeys = (KType[]) this.keys;
  final int[] prevValues =  this.values;
  allocateBuffers(minBufferSize(expectedElements, loadFactor));
  if (prevKeys != null && !isEmpty()) {
   rehash(prevKeys, prevValues);
  }
 }
}

代码示例来源:origin: carrotsearch/hppc

/**
 * This method is invoked when there is a new key/ value pair to be inserted into
 * the buffers but there is not enough empty slots to do so.
 * 
 * New buffers are allocated. If this succeeds, we know we can proceed
 * with rehashing so we assign the pending element to the previous buffer
 * (possibly violating the invariant of having at least one empty slot)
 * and rehash all keys, substituting new buffers at the end.  
 */
protected void allocateThenInsertThenRehash(int slot, KType pendingKey, int pendingValue) {
 assert assigned == resizeAt
     && (((KType) keys[slot]) == null)
     && !((pendingKey) == null);
 // Try to allocate new buffers first. If we OOM, we leave in a consistent state.
 final KType[] prevKeys = (KType[]) this.keys;
 final int[] prevValues =  this.values;
 allocateBuffers(nextBufferSize(mask + 1, size(), loadFactor));
 assert this.keys.length > prevKeys.length;
 // We have succeeded at allocating new data so insert the pending key/value at
 // the free slot in the old arrays before rehashing.
 prevKeys[slot] = pendingKey;
 prevValues[slot] = pendingValue;
 // Rehash old keys, including the pending key.
 rehash(prevKeys, prevValues);
}

代码示例来源:origin: harbby/presto-connectors

/**
 * Ensure this container can hold at least the
 * given number of keys (entries) without resizing its buffers.
 * 
 * @param expectedElements The total number of keys, inclusive.
 */
@Override
public void ensureCapacity(int expectedElements) {
 if (expectedElements > resizeAt || keys == null) {
  final KType[] prevKeys = (KType[]) this.keys;
  final int[] prevValues =  this.values;
  allocateBuffers(minBufferSize(expectedElements, loadFactor));
  if (prevKeys != null && !isEmpty()) {
   rehash(prevKeys, prevValues);
  }
 }
}

代码示例来源:origin: harbby/presto-connectors

/**
 * This method is invoked when there is a new key/ value pair to be inserted into
 * the buffers but there is not enough empty slots to do so.
 * 
 * New buffers are allocated. If this succeeds, we know we can proceed
 * with rehashing so we assign the pending element to the previous buffer
 * (possibly violating the invariant of having at least one empty slot)
 * and rehash all keys, substituting new buffers at the end.  
 */
protected void allocateThenInsertThenRehash(int slot, KType pendingKey, int pendingValue) {
 assert assigned == resizeAt
     && (((KType) keys[slot]) == null)
     && !((pendingKey) == null);
 // Try to allocate new buffers first. If we OOM, we leave in a consistent state.
 final KType[] prevKeys = (KType[]) this.keys;
 final int[] prevValues =  this.values;
 allocateBuffers(nextBufferSize(mask + 1, size(), loadFactor));
 assert this.keys.length > prevKeys.length;
 // We have succeeded at allocating new data so insert the pending key/value at
 // the free slot in the old arrays before rehashing.
 prevKeys[slot] = pendingKey;
 prevValues[slot] = pendingValue;
 // Rehash old keys, including the pending key.
 rehash(prevKeys, prevValues);
}

相关文章