package com.carrotsearch.hppc;

/*  */
import java.util.Iterator;
import com.carrotsearch.hppc.cursors.*;
/*  */

import static com.carrotsearch.hppc.Containers.*;
import static com.carrotsearch.hppc.HashContainers.*;

An identity hash map of Object to Object.
/** * An identity hash map of <code>Object</code> to <code>Object</code>. */
@SuppressWarnings("all") @com.carrotsearch.hppc.Generated( date = "2018-05-21T12:24:06+0200", value = "KTypeVTypeIdentityHashMap.java") public class ObjectObjectIdentityHashMap<KType, VType> extends ObjectObjectHashMap<KType, VType> {
New instance with sane defaults.
/** * New instance with sane defaults. */
public ObjectObjectIdentityHashMap() { this(DEFAULT_EXPECTED_ELEMENTS); }
New instance with sane defaults.
Params:
  • expectedElements – The expected number of elements guaranteed not to cause buffer expansion (inclusive).
/** * New instance with sane defaults. * @param expectedElements * The expected number of elements guaranteed not to cause buffer * expansion (inclusive). */
public ObjectObjectIdentityHashMap(int expectedElements) { this(expectedElements, DEFAULT_LOAD_FACTOR); }
New instance with sane defaults.
Params:
  • expectedElements – The expected number of elements guaranteed not to cause buffer expansion (inclusive).
  • loadFactor – The load factor for internal buffers. Insane load factors (zero, full capacity) are rejected by ObjectObjectHashMap.verifyLoadFactor(double).
/** * New instance with sane defaults. * * @param expectedElements * The expected number of elements guaranteed not to cause buffer * expansion (inclusive). * @param loadFactor * The load factor for internal buffers. Insane load factors (zero, full capacity) * are rejected by {@link #verifyLoadFactor(double)}. */
public ObjectObjectIdentityHashMap(int expectedElements, double loadFactor) { this(expectedElements, loadFactor, HashOrderMixing.randomized()); }
New instance with the provided defaults.
Params:
  • expectedElements – The expected number of elements guaranteed not to cause a rehash (inclusive).
  • loadFactor – The load factor for internal buffers. Insane load factors (zero, full capacity) are rejected by ObjectObjectHashMap.verifyLoadFactor(double).
  • orderMixer – Hash key order mixing strategy. See HashOrderMixing for predefined implementations. Use constant mixers only if you understand the potential consequences.
/** * New instance with the provided defaults. * * @param expectedElements * The expected number of elements guaranteed not to cause a rehash (inclusive). * @param loadFactor * The load factor for internal buffers. Insane load factors (zero, full capacity) * are rejected by {@link #verifyLoadFactor(double)}. * @param orderMixer * Hash key order mixing strategy. See {@link HashOrderMixing} for predefined * implementations. Use constant mixers only if you understand the potential * consequences. */
public ObjectObjectIdentityHashMap(int expectedElements, double loadFactor, HashOrderMixingStrategy orderMixer) { this.orderMixer = orderMixer; this.loadFactor = verifyLoadFactor(loadFactor); ensureCapacity(expectedElements); }
Create a hash map from all key-value pairs of another container.
/** * Create a hash map from all key-value pairs of another container. */
public ObjectObjectIdentityHashMap(ObjectObjectAssociativeContainer<? extends KType, ? extends VType> container) { this(container.size()); putAll(container); } @Override public int hashKey(KType key) { assert !((key) == null); // Handled as a special case (empty slot marker). return BitMixer.mix(System.identityHashCode(key), this.keyMixer); } @Override public boolean equals(Object v1, Object v2) { return v1 == v2; } /* */ @Override protected boolean equalElements(ObjectObjectHashMap<?, ?> other) { if (other.size() != size()) { return false; } Iterator<? extends ObjectObjectCursor<?, ?>> i = other.iterator(); while (i.hasNext()) { ObjectObjectCursor<?, ?> c = i.next(); KType key = (KType) c.key; if (!containsKey(key) || !equals(get(key), c.value)) { // Compare values using the same function as keys. return false; } } return true; } /* */
Creates a hash map from two index-aligned arrays of key-value pairs.
/** * Creates a hash map from two index-aligned arrays of key-value pairs. */
public static <KType, VType> ObjectObjectIdentityHashMap<KType, VType> from(KType[] keys, VType[] values) { if (keys.length != values.length) { throw new IllegalArgumentException("Arrays of keys and values must have an identical length."); } ObjectObjectIdentityHashMap<KType, VType> map = new ObjectObjectIdentityHashMap<>(keys.length); for (int i = 0; i < keys.length; i++) { map.put(keys[i], values[i]); } return map; } }