com.carrotsearch.hppc.ObjectDoubleAssociativeContainer Maven / Gradle / Ivy
Show all versions of hppc Show documentation
package com.carrotsearch.hppc;
import java.util.Iterator;
import com.carrotsearch.hppc.cursors.*;
import com.carrotsearch.hppc.predicates.*;
import com.carrotsearch.hppc.procedures.*;
/**
* An associative container from keys to (one or
* possibly more) values.
*
* @see ObjectContainer
*/
@com.carrotsearch.hppc.Generated(
date = "2021-06-08T13:12:53+0200",
value = "KTypeVTypeAssociativeContainer.java")
public interface ObjectDoubleAssociativeContainer
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
public Iterator> iterator();
/**
* Returns true
if this container has an association to a value
* for the given key.
*/
public boolean containsKey(KType key);
/**
* @return Returns the current size (number of assigned keys) in the
* container.
*/
public int size();
/**
* @return Return true
if this hash map contains no assigned
* keys.
*/
public boolean isEmpty();
/**
* Removes all keys (and associated values) present in a given container. An
* alias to:
*
*
* keys().removeAll(container)
*
*
* but with no additional overhead.
*
* @return Returns the number of elements actually removed as a result of this
* call.
*/
public int removeAll(ObjectContainer super KType> container);
/**
* Removes all keys (and associated values) for which the predicate returns
* true
.
*
* @return Returns the number of elements actually removed as a result of this
* call.
*/
public int removeAll(ObjectPredicate super KType> predicate);
/**
* Removes all keys (and associated values) for which the predicate returns
* true
.
*
* @return Returns the number of elements actually removed as a result of this
* call.
*/
public int removeAll(ObjectDoublePredicate super KType> predicate);
/**
* Applies a given procedure to all keys-value pairs in this container.
* Returns the argument (any subclass of {@link ObjectDoubleProcedure}. 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.
*/
public > T forEach(T procedure);
/**
* Applies a given predicate to all keys-value pairs in this container.
* Returns the argument (any subclass of {@link ObjectDoublePredicate}. 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
.
*/
public > T forEach(T predicate);
/**
* Returns a collection 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.
*/
public ObjectCollection keys();
/**
* Returns a container view of all values present in 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.
*/
public DoubleContainer values();
}