All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.carrotsearch.hppcrt.IntCharAssociativeContainer Maven / Gradle / Ivy

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 IntContainer */ @javax.annotation.Generated( date = "2017-07-11T19:16:24+0200", value = "KTypeVTypeAssociativeContainer.java") public interface IntCharAssociativeContainer 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(int 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(IntContainer 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(IntPredicate 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(IntCharPredicate predicate); /** * Applies a given procedure to all keys-value pairs in this container. Returns the argument (any * subclass of {@link IntCharProcedure}. 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 IntCharPredicate}. 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. */ IntCollection 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. */ CharCollection values(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy