always hash input for hashed collection functions

This commit is contained in:
Jonathan Shook
2020-07-17 18:40:51 -05:00
parent 8874d3dcca
commit b35426c390
4 changed files with 4 additions and 4 deletions

View File

@@ -45,9 +45,9 @@ public class ListHashed implements LongFunction<List<Object>> {
long hash = value;
List<Object> list = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
hash = hasher.applyAsLong(hash);
int selector = Math.min(i, valueFuncs.size() - 1);
LongFunction<?> func = valueFuncs.get(selector);
hash = hasher.applyAsLong(hash);
list.add(func.apply(hash));
}
return list;

View File

@@ -48,9 +48,9 @@ public class MapHashed implements LongFunction<java.util.Map<Object,Object>> {
java.util.Map<Object,Object> map = new HashMap<>(size);
for (int i = 0; i < size; i++) {
hash = hasher.applyAsLong(hash);
int keySelector = Math.min(i, keyFuncs.size() - 1);
int valSelector = Math.min(i, valueFuncs.size() -1);
hash = hasher.applyAsLong(hash);
Object keyObject = keyFuncs.get(keySelector).apply(hash);
Object valueObject = valueFuncs.get(valSelector).apply(hash);

View File

@@ -54,9 +54,9 @@ public class MapSizedHashed implements LongFunction<java.util.Map<Object,Object>
java.util.Map<Object,Object> map = new HashMap<>(size);
for (int i = 0; i < size; i++) {
hash = hasher.applyAsLong(hash);
int keySelector = Math.min(i, keyFuncs.size() - 1);
int valSelector = Math.min(i, valueFuncs.size() -1);
hash = hasher.applyAsLong(hash);
Object keyObject = keyFuncs.get(keySelector).apply(hash);
Object valueObject = valueFuncs.get(valSelector).apply(hash);

View File

@@ -42,9 +42,9 @@ public class SetHashed implements LongFunction<java.util.Set<Object>> {
long hash = value;
java.util.Set<Object> list = new HashSet<>(size);
for (int i = 0; i < size; i++) {
hash = hasher.applyAsLong(hash);
int selector = Math.min(i, valueFuncs.size() - 1);
LongFunction<?> func = valueFuncs.get(selector);
hash = hasher.applyAsLong(hash);
list.add(func.apply(hash));
}
return list;