com.carrotsearch.hppc.LongShortScatterMap Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hppc Show documentation
Show all versions of hppc Show documentation
High Performance Primitive Collections: data structures (maps, sets, lists, stacks, queues) generated for combinations of object and primitive types to conserve JVM memory and speed up execution.
package com.carrotsearch.hppc;
import static com.carrotsearch.hppc.Containers.*;
import static com.carrotsearch.hppc.HashContainers.*;
/**
* Same as {@link LongShortHashMap} but does not implement per-instance
* key mixing strategy and uses a simpler (faster) bit distribution function.
*
* Note: read about
* important differences
* between hash and scatter sets.
*/
@com.carrotsearch.hppc.Generated(
date = "2018-05-21T12:24:06+0200",
value = "KTypeVTypeScatterMap.java")
public class LongShortScatterMap extends LongShortHashMap
{
/**
* New instance with sane defaults.
*/
public LongShortScatterMap() {
this(DEFAULT_EXPECTED_ELEMENTS);
}
/**
* New instance with sane defaults.
*/
public LongShortScatterMap(int expectedElements) {
this(expectedElements, DEFAULT_LOAD_FACTOR);
}
/**
* New instance with sane defaults.
*/
@SuppressWarnings("deprecation")
public LongShortScatterMap(int expectedElements, double loadFactor) {
super(expectedElements, loadFactor, HashOrderMixing.none());
}
protected
int hashKey(long key) {
return BitMixer.mixPhi(key);
}
/**
* Creates a hash map from two index-aligned arrays of key-value pairs.
*/
public static LongShortScatterMap from(long[] keys, short[] values) {
if (keys.length != values.length) {
throw new IllegalArgumentException("Arrays of keys and values must have an identical length.");
}
LongShortScatterMap map = new LongShortScatterMap(keys.length);
for (int i = 0; i < keys.length; i++) {
map.put(keys[i], values[i]);
}
return map;
}
}