com.carrotsearch.hppcrt.DoubleIntAssociativeContainer Maven / Gradle / Ivy
Show all versions of hppcrt Show documentation
package com.carrotsearch.hppcrt;
import java.util.Iterator;
import com.carrotsearch.hppcrt.cursors.*;
import com.carrotsearch.hppcrt.predicates.*;
import com.carrotsearch.hppcrt.procedures.*;
/**
* An associative container (alias: map, dictionary) from keys to (one or possibly more) values.
* Object keys must fulfill the contract of {@link Object#hashCode()} and {@link Object#equals(Object)}.
*
* Note that certain associative containers (like multimaps) may return the same key-value pair
* multiple times from iterators.
*
* @see DoubleContainer
*/
@javax.annotation.Generated(
date = "2016-01-27T20:51:53+0100",
value = "KTypeVTypeAssociativeContainer.java")
public interface DoubleIntAssociativeContainer
extends Iterable
{
/**
* Returns a cursor over the entries (key-value pairs) in this map. The iterator is
* implemented as a cursor and it returns the same cursor instance on every
* call to {@link Iterator#next()}. To read the current key and value use the cursor's
* public fields. An example is shown below.
*
* for (IntShortCursor c : intShortMap)
* {
* System.out.println("index=" + c.index
* + " key=" + c.key
* + " value=" + c.value);
* }
*
*
* The index
field inside the cursor gives the internal index inside
* the container's implementation. The interpretation of this index depends on
* to the container.
*/
@Override
Iterator iterator();
/**
* Returns true
if this container has an association to a value for
* the given key.
*/
boolean containsKey(double key);
/**
* @return Returns the current size (number of assigned keys) in the container.
*/
int size();
/**
* Return the maximum number of keys this container is guaranteed to hold without reallocating.
* The time for calculating the container's capacity may take O(n)
time.
*/
int capacity();
/**
* @return Return true
if this hash map contains no assigned keys.
*/
boolean isEmpty();
/**
* Removes all keys (and associated values) present in a given container.
*
* @return Returns the number of elements actually removed as a result of this call.
*/
int removeAll(DoubleContainer container);
/**
* Removes all keys (and associated values) for which the predicate on keys returns true
.
*
* @return Returns the number of elements actually removed as a result of this call.
*/
int removeAll(DoublePredicate predicate);
/**
* Removes all keys (and associated values) for which the predicate on (key, value) pairs returns true
.
*
* @return Returns the number of elements actually removed as a result of this call.
*/
int removeAll(DoubleIntPredicate predicate);
/**
* Applies a given procedure to all keys-value pairs in this container. Returns the argument (any
* subclass of {@link DoubleIntProcedure}. This lets the caller to call methods of the argument
* by chaining the call (even if the argument is an anonymous type) to retrieve computed values,
* for example.
*/
T forEach(T procedure);
/**
* Applies a predicate
to container elements, as long as the predicate
* returns true
. The iteration is interrupted otherwise.
* Returns the argument (any
* subclass of {@link DoubleIntPredicate}. This lets the caller to call methods of the argument
* by chaining the call (even if the argument is an anonymous type) to retrieve computed values,
* for example.
*
* The iteration is continued as long as the predicate returns true
.
*/
T forEach(T predicate);
/**
* Returns a collection view of keys of this container. The returned collection is a view
* over the key set and any modifications (if allowed) introduced to the collection will
* propagate to the associative container immediately.
*/
DoubleCollection keys();
/**
* Returns a collection view of all values present in this container. The returned collection is a view
* over the value set and any modifications (if allowed) introduced to the collection will
* propagate to the associative container immediately.
*/
IntCollection values();
}