edu.stanford.nlp.util
Class Maps

java.lang.Object
  extended by edu.stanford.nlp.util.Maps

public class Maps
extends java.lang.Object

Utilities for Maps, including inverting, composing, and support for list/set values.

Author:
Dan Klein (klein@cs.stanford.edu) Date: Oct 22, 2003 Time: 8:56:16 PM

Constructor Summary
Maps()
           
 
Method Summary
static
<K,V1,V2> void
addAll(java.util.Map<K,V1> to, java.util.Map<K,V2> from, Function<V2,V1> function)
          Adds all of the keys in from to to, applying function to the values to transform them from V2 to V1.
static
<X,Y,Z> java.util.Map<X,Z>
compose(java.util.Map<X,Y> map1, java.util.Map<Y,Z> map2)
          Compose two maps map1:x->y and map2:y->z to get a map x->z
static
<X,Y> java.util.Map<Y,X>
invert(java.util.Map<X,Y> map)
          Inverts a map x->y to a map y->x assuming unique preimages.
static
<X,Y> java.util.Map<Y,java.util.Set<X>>
invertSet(java.util.Map<X,Y> map)
          Inverts a map x->y to a map y->pow(x) not assuming unique preimages.
static void main(java.lang.String[] args)
           
static
<K,V> void
putIntoValueArrayList(java.util.Map<K,java.util.List<V>> map, K key, V value)
          Adds the value to the ArrayList given by map.get(key), creating a new ArrayList if needed.
static
<K,V,C extends java.util.Collection<V>>
void
putIntoValueCollection(java.util.Map<K,C> map, K key, V value, CollectionFactory<V> cf)
          Adds the value to the collection given by map.get(key).
static
<K,V> void
putIntoValueHashSet(java.util.Map<K,java.util.Set<V>> map, K key, V value)
          Adds the value to the HashSet given by map.get(key), creating a new HashMap if needed.
static
<K,V> void
removeKeys(java.util.Map<K,V> map, java.util.Collection<K> removekeys)
          Removes keys from the map
static
<K extends java.lang.Comparable<? super K>,V>
java.util.List<java.util.Map.Entry<K,V>>
sortedEntries(java.util.Collection<java.util.Map.Entry<K,V>> entries)
          Sorts a list of entries.
static
<K extends java.lang.Comparable<? super K>,V>
java.util.List<java.util.Map.Entry<K,V>>
sortedEntries(java.util.Map<K,V> map)
          Returns a List of entries in the map, sorted by key.
static
<K extends java.lang.Comparable<K>,V>
java.lang.String
toStringSorted(java.util.Map<K,V> map)
          Stringifies a Map in a stable fashion.
static
<K extends java.lang.Comparable<K>,V>
void
toStringSorted(java.util.Map<K,V> map, java.lang.StringBuilder builder)
          Stringifies a Map in a stable fashion.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Maps

public Maps()
Method Detail

putIntoValueHashSet

public static <K,V> void putIntoValueHashSet(java.util.Map<K,java.util.Set<V>> map,
                                             K key,
                                             V value)
Adds the value to the HashSet given by map.get(key), creating a new HashMap if needed.


putIntoValueArrayList

public static <K,V> void putIntoValueArrayList(java.util.Map<K,java.util.List<V>> map,
                                               K key,
                                               V value)
Adds the value to the ArrayList given by map.get(key), creating a new ArrayList if needed.


putIntoValueCollection

public static <K,V,C extends java.util.Collection<V>> void putIntoValueCollection(java.util.Map<K,C> map,
                                                                                  K key,
                                                                                  V value,
                                                                                  CollectionFactory<V> cf)
Adds the value to the collection given by map.get(key). A new collection is created using the supplied CollectionFactory.


compose

public static <X,Y,Z> java.util.Map<X,Z> compose(java.util.Map<X,Y> map1,
                                                 java.util.Map<Y,Z> map2)
Compose two maps map1:x->y and map2:y->z to get a map x->z

Returns:
The composed map

invert

public static <X,Y> java.util.Map<Y,X> invert(java.util.Map<X,Y> map)
Inverts a map x->y to a map y->x assuming unique preimages. If they are not unique, you get an arbitrary ones as the values in the inverted map.

Returns:
The inverted map

invertSet

public static <X,Y> java.util.Map<Y,java.util.Set<X>> invertSet(java.util.Map<X,Y> map)
Inverts a map x->y to a map y->pow(x) not assuming unique preimages.

Returns:
The inverted set

sortedEntries

public static <K extends java.lang.Comparable<? super K>,V> java.util.List<java.util.Map.Entry<K,V>> sortedEntries(java.util.Collection<java.util.Map.Entry<K,V>> entries)
Sorts a list of entries. This menthod is here since the entries might come from a Counter.


sortedEntries

public static <K extends java.lang.Comparable<? super K>,V> java.util.List<java.util.Map.Entry<K,V>> sortedEntries(java.util.Map<K,V> map)
Returns a List of entries in the map, sorted by key.


toStringSorted

public static <K extends java.lang.Comparable<K>,V> void toStringSorted(java.util.Map<K,V> map,
                                                                        java.lang.StringBuilder builder)
Stringifies a Map in a stable fashion.


toStringSorted

public static <K extends java.lang.Comparable<K>,V> java.lang.String toStringSorted(java.util.Map<K,V> map)
Stringifies a Map in a stable fashion.


removeKeys

public static <K,V> void removeKeys(java.util.Map<K,V> map,
                                    java.util.Collection<K> removekeys)
Removes keys from the map


addAll

public static <K,V1,V2> void addAll(java.util.Map<K,V1> to,
                                    java.util.Map<K,V2> from,
                                    Function<V2,V1> function)
Adds all of the keys in from to to, applying function to the values to transform them from V2 to V1.


main

public static void main(java.lang.String[] args)


Stanford NLP Group