com.carrotsearch.hppcrt.ByteFloatMap Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hppcrt Show documentation
Show all versions of hppcrt Show documentation
High Performance Primitive Collections Realtime
(fork of HPPC from Carrotsearch)
Fundamental data structures (maps, sets, lists, queues, heaps, sorts) generated for
combinations of object and primitive types to conserve JVM memory and speed
up execution. The Realtime fork intends to extend the existing collections, by tweaking to remove any dynamic allocations at runtime,
and to obtain low variance execution times whatever the input nature.
package com.carrotsearch.hppcrt;
import com.carrotsearch.hppcrt.cursors.ByteFloatCursor;
/**
* An associative container with unique binding from keys to a single value.
*/
@javax.annotation.Generated(date = "2014-10-25T20:54:14+0200", value = "HPPC-RT generated from: ByteFloatMap.java")
public interface ByteFloatMap
extends ByteFloatAssociativeContainer
{
/**
* Place a given key and value in the container.
* @return Returns the value previously stored under the given key in the map if an equal key is part of the map, and replaces the existing
* value only with the argument value. If no previous key existed,
* the default value is returned and the (key, value) pair is inserted.
*/
float put(byte key, float value);
/**
* Trove-inspired API method. An equivalent
* of the following code:
*
* if (!map.containsKey(key))
* map.put(key, value);
*
*
* @param key The key of the value to check.
* @param value The value to put if key
does not exist.
* @return true
if key
did not exist and value
* was placed in the map.
*/
boolean putIfAbsent(final byte key, final float value);
/**
* An equivalent of calling
*
* putOrAdd(key, additionValue, additionValue);
*
*
* @param key The key of the value to adjust.
* @param additionValue The value to put or add to the existing value if key
exists.
* @return Returns the current value associated with key
(after changes).
*/
float addTo(byte key, float additionValue);
/**
* Trove-inspired API method. A logical
* equivalent of the following code (but does not update {@link #lastSlot):
*
* if (containsKey(key))
* {
* float v = (float) (lget() + additionValue);
* lset(v);
* return v;
* }
* else
* {
* put(key, putValue);
* return putValue;
* }
*
*
* @param key The key of the value to adjust.
* @param putValue The value to put if key
does not exist.
* @param additionValue The value to add to the existing value if key
exists.
* @return Returns the current value associated with key
(after changes).
*/
float putOrAdd(byte key, float putValue, float additionValue);
/**
* @return Returns the value associated with the given key or the default value
* for the value type, if the key is not associated with any value.
*
*/
float get(byte key);
/**
* Puts all keys from another container to this map, replacing the values
* of existing keys, if such keys are present.
*
* @return Returns the number of keys added to the map as a result of this
* call (not previously present in the map). Values of existing keys are overwritten.
*/
int putAll(ByteFloatAssociativeContainer container);
/**
* Puts all keys from an iterable cursor to this map, replacing the values
* of existing keys, if such keys are present.
*
* @return Returns the number of keys added to the map as a result of this
* call (not previously present in the map). Values of existing keys are overwritten.
*/
int putAll(Iterable extends ByteFloatCursor> iterable);
/**
* Remove all values at the given key. The default value for the key type is returned
* if the value does not exist in the map.
*/
float remove(byte key);
}