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

gov.sandia.cognition.collection.NumericMap Maven / Gradle / Ivy

/*
 * File:                NumericMap.java
 * Authors:             Justin Basilico
 * Company:             Sandia National Laboratories
 * Project:             Incremental Learning Core
 * 
 * Copyright April 27, 2011, Sandia Corporation.
 * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive 
 * license for use of this work by or on behalf of the U.S. Government. Export 
 * of this program may require a license from the United States Government. 
 * 
 */

package gov.sandia.cognition.collection;

import java.util.Set;

/**
 * An interface for a mapping of keys to numeric values.
 *
 * @param   
 *      The type of the key in the map.
 * @author  Justin Basilico
 * @since   3.3.1
 */
public interface NumericMap
{
    
    /**
     * Returns true if the map is empty.
     *
     * @return
     *      True if the map is empty, which means the size is 0.
     */
    public boolean isEmpty();

    /**
     * Gets the set of unique keys in the map.
     *
     * @return
     *      The set of unique keys in the map.
     */
    public Set keySet();

    /**
     * Determines if this map contains the given key.
     *
     * @param   key
     *      A key.
     * @return
     *      True if the map contains the key; otherwise false.
     */
    public boolean containsKey(
        final KeyType key);

    /**
     * Gets the number of items in the map. This is equal to the number of
     * unique keys.
     *
     * @return
     *      The number of items in the map. Must be positive.
     */
    public int size();

    /**
     * Removes all elements from the map.
     */
    public void clear();

    /**
     * Gets the non-unique key associated with the maximum value in the map.
     * There can be several keys returning the maximum and this method returns
     * one of them. If the map is empty, it returns null.
     *
     * @return
     *      Non-unique key associated with the maximum value in the map.
     */
    public KeyType getMaxValueKey();

    /**
     * Gets a set of all keys associated with the maximum value in the map.
     *
     * @return
     *      Set of all keys associated with the maximum value in the map.
     */
    public Set getMaxValueKeys();

    /**
     * Gets the non-unique key associated with the minimum value in the map.
     * There can be several keys returning the minimum and this method returns
     * one of them. If the map is empty, it returns null.
     *
     * @return
     *      Non-unique key associated with the minimum value in the map.
     */
    public KeyType getMinValueKey();

    /**
     * Gets a set of all keys associated with the minimum value in the map.
     *
     * @return
     *      Set of all keys associated with the minimum value in the map.
     */
    public Set getMinValueKeys();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy