本文整理了Java中com.google.common.collect.Hashing.smear()
方法的一些代码示例,展示了Hashing.smear()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Hashing.smear()
方法的具体详情如下:
包路径:com.google.common.collect.Hashing
类名称:Hashing
方法名:smear
暂无
代码示例来源:origin: google/guava
/** Builds a new open-addressed hash table from the first n objects in elements. */
static Object[] rebuildHashTable(int newTableSize, Object[] elements, int n) {
Object[] hashTable = new Object[newTableSize];
int mask = hashTable.length - 1;
for (int i = 0; i < n; i++) {
Object e = elements[i];
int j0 = Hashing.smear(e.hashCode());
for (int j = j0; ; j++) {
int index = j & mask;
if (hashTable[index] == null) {
hashTable[index] = e;
break;
}
}
}
return hashTable;
}
代码示例来源:origin: google/guava
static int smearedHash(@Nullable Object o) {
return smear((o == null) ? 0 : o.hashCode());
}
代码示例来源:origin: wildfly/wildfly
/** Builds a new open-addressed hash table from the first n objects in elements. */
static Object[] rebuildHashTable(int newTableSize, Object[] elements, int n) {
Object[] hashTable = new Object[newTableSize];
int mask = hashTable.length - 1;
for (int i = 0; i < n; i++) {
Object e = elements[i];
int j0 = Hashing.smear(e.hashCode());
for (int j = j0; ; j++) {
int index = j & mask;
if (hashTable[index] == null) {
hashTable[index] = e;
break;
}
}
}
return hashTable;
}
代码示例来源:origin: google/j2objc
static int smearedHash(@NullableDecl Object o) {
return smear((o == null) ? 0 : o.hashCode());
}
代码示例来源:origin: wildfly/wildfly
static int smearedHash(@NullableDecl Object o) {
return smear((o == null) ? 0 : o.hashCode());
}
代码示例来源:origin: google/guava
@Override
SetBuilderImpl<E> add(E e) {
checkNotNull(e);
int eHash = e.hashCode();
int i0 = Hashing.smear(eHash);
int mask = hashTable.length - 1;
for (int i = i0; i - i0 < maxRunBeforeFallback; i++) {
int index = i & mask;
Object tableEntry = hashTable[index];
if (tableEntry == null) {
addDedupedElement(e);
hashTable[index] = e;
hashCode += eHash;
ensureTableCapacity(distinct); // rebuilds table if necessary
return this;
} else if (tableEntry.equals(e)) { // not a new element, ignore
return this;
}
}
// we fell out of the loop due to a long run; fall back to JDK impl
return new JdkBackedSetBuilderImpl<E>(this).add(e);
}
代码示例来源:origin: google/j2objc
Object element = checkElementNotNull(elements[i], i);
int hash = element.hashCode();
for (int j = Hashing.smear(hash); ; j++) {
int index = j & mask;
Object value = table[index];
代码示例来源:origin: google/guava
static <V> @Nullable V get(
@Nullable Object key, ImmutableMapEntry<?, V> @Nullable [] keyTable, int mask) {
if (key == null || keyTable == null) {
return null;
}
int index = Hashing.smear(key.hashCode()) & mask;
for (ImmutableMapEntry<?, V> entry = keyTable[index];
entry != null;
entry = entry.getNextInKeyBucket()) {
Object candidateKey = entry.getKey();
/*
* Assume that equals uses the == optimization when appropriate, and that
* it would check hash codes as an optimization when appropriate. If we
* did these things, it would just make things worse for the most
* performance-conscious users.
*/
if (key.equals(candidateKey)) {
return entry.getValue();
}
}
return null;
}
代码示例来源:origin: wildfly/wildfly
@Override
SetBuilderImpl<E> add(E e) {
checkNotNull(e);
int eHash = e.hashCode();
int i0 = Hashing.smear(eHash);
int mask = hashTable.length - 1;
for (int i = i0; i - i0 < maxRunBeforeFallback; i++) {
int index = i & mask;
Object tableEntry = hashTable[index];
if (tableEntry == null) {
addDedupedElement(e);
hashTable[index] = e;
hashCode += eHash;
ensureTableCapacity(distinct); // rebuilds table if necessary
return this;
} else if (tableEntry.equals(e)) { // not a new element, ignore
return this;
}
}
// we fell out of the loop due to a long run; fall back to JDK impl
return new JdkBackedSetBuilderImpl<E>(this).add(e);
}
代码示例来源:origin: google/guava
int keyHash = key.hashCode();
int valueHash = value.hashCode();
int keyBucket = Hashing.smear(keyHash) & mask;
int valueBucket = Hashing.smear(valueHash) & mask;
代码示例来源:origin: google/guava
public void testSmear() {
assertEquals(1459320713, smear(754102528));
assertEquals(-160560296, smear(1234567890));
assertEquals(-1017931171, smear(1));
assertEquals(-1350072884, smear(-2000000000));
assertEquals(-809843551, smear(2000000000));
assertEquals(-309370926, smear(-1155484576));
assertEquals(-1645495900, smear(-723955400));
assertEquals(766424523, smear(1033096058));
assertEquals(-757003149, smear(-1690734402));
assertEquals(-245078984, smear(-1557280266));
assertEquals(-1401957971, smear(1327362106));
assertEquals(1398564061, smear(-1930858313));
assertEquals(799903031, smear(502539523));
assertEquals(587718043, smear(-1728529858));
assertEquals(1757836855, smear(-938301587));
assertEquals(1002498708, smear(1431162155));
assertEquals(52905316, smear(1085665355));
assertEquals(-1590037357, smear(1654374947));
assertEquals(-100883544, smear(-1661998771));
assertEquals(1312247346, smear(-65105105));
assertEquals(-79641824, smear(-73789608));
assertEquals(1739416943, smear(-518907128));
assertEquals(483849880, smear(99135751));
assertEquals(1797032732, smear(-252332814));
assertEquals(329701497, smear(755814641));
assertEquals(-1411506712, smear(1180918287));
assertEquals(-132448996, smear(1344049776));
assertEquals(51088191, smear(553609048));
assertEquals(-322136643, smear(1580443894));
代码示例来源:origin: google/guava
int count = entry.getCount();
int hash = element.hashCode();
int bucket = Hashing.smear(hash) & mask;
Multisets.ImmutableEntry<E> bucketHead = hashTable[bucket];
Multisets.ImmutableEntry<E> newEntry;
代码示例来源:origin: google/guava
V value = entry.getValue();
checkEntryNotNull(key, value);
int tableIndex = Hashing.smear(key.hashCode()) & mask;
@Nullable ImmutableMapEntry<K, V> existing = table[tableIndex];
代码示例来源:origin: wildfly/wildfly
@NullableDecl
static <V> V get(
@NullableDecl Object key, @NullableDecl ImmutableMapEntry<?, V>[] keyTable, int mask) {
if (key == null || keyTable == null) {
return null;
}
int index = Hashing.smear(key.hashCode()) & mask;
for (ImmutableMapEntry<?, V> entry = keyTable[index];
entry != null;
entry = entry.getNextInKeyBucket()) {
Object candidateKey = entry.getKey();
/*
* Assume that equals uses the == optimization when appropriate, and that
* it would check hash codes as an optimization when appropriate. If we
* did these things, it would just make things worse for the most
* performance-conscious users.
*/
if (key.equals(candidateKey)) {
return entry.getValue();
}
}
return null;
}
代码示例来源:origin: wildfly/wildfly
int keyHash = key.hashCode();
int valueHash = value.hashCode();
int keyBucket = Hashing.smear(keyHash) & mask;
int valueBucket = Hashing.smear(valueHash) & mask;
代码示例来源:origin: wildfly/wildfly
int count = entry.getCount();
int hash = element.hashCode();
int bucket = Hashing.smear(hash) & mask;
Multisets.ImmutableEntry<E> bucketHead = hashTable[bucket];
Multisets.ImmutableEntry<E> newEntry;
代码示例来源:origin: wildfly/wildfly
V value = entry.getValue();
checkEntryNotNull(key, value);
int tableIndex = Hashing.smear(key.hashCode()) & mask;
@NullableDecl ImmutableMapEntry<K, V> existing = table[tableIndex];
代码示例来源:origin: google/j2objc
Object value = alternatingKeysAndValues[2 * i + (keyOffset ^ 1)];
checkEntryNotNull(key, value);
for (int h = Hashing.smear(key.hashCode()); ; h++) {
h &= mask;
int previous = hashTable[h];
代码示例来源:origin: com.atlassian.bundles/google-collections
@Override public boolean contains(Object target) {
if (target == null) {
return false;
}
for (int i = Hashing.smear(target.hashCode()); true; i++) {
Object candidate = table[i & mask];
if (candidate == null) {
return false;
}
if (candidate.equals(target)) {
return true;
}
}
}
代码示例来源:origin: com.google.guava/guava-jdk5
private static int hash(@Nullable Object o) {
return Hashing.smear((o == null) ? 0 : o.hashCode());
}
内容来源于网络,如有侵权,请联系作者删除!