Package fj.data
Class TreeMap<K,V>
- java.lang.Object
-
- fj.data.TreeMap<K,V>
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <K,V>
TreeMap<K,V>arrayTreeMap(Ord<K> keyOrd, P2<K,V>... ps)
Constructs a tree map from the given elements.boolean
contains(K k)
Determines if the given key value exists in this tree map.TreeMap<K,V>
delete(K k)
Deletes the entry in the tree map that corresponds to the given key.static <K,V>
TreeMap<K,V>empty(Ord<K> keyOrd)
Constructs an empty tree map.boolean
equals(java.lang.Object other)
static <K,V>
TreeMap<K,V>fromMutableMap(Ord<K> ord, java.util.Map<K,V> m)
An immutable projection of the given mutable map.F<K,Option<V>>
get()
Returns a first-class version of the get method for this TreeMap.Option<V>
get(K k)
Returns a potential value that the given key maps to.int
hashCode()
boolean
isEmpty()
Determines if this tree map has any entries.static <K,V>
TreeMap<K,V>iterableTreeMap(Ord<K> keyOrd, java.lang.Iterable<P2<K,V>> it)
Constructs a tree map from the given elements.java.util.Iterator<P2<K,V>>
iterator()
Returns an iterator for this map's key-value pairs.static <K,V>
TreeMap<K,V>iteratorTreeMap(Ord<K> keyOrd, java.util.Iterator<P2<K,V>> it)
Constructs a tree map from the given elements.List<K>
keys()
Returns all keys in this tree map.<W> TreeMap<K,W>
map(F<V,W> f)
Maps the given function across the values of this TreeMap.Option<P2<K,V>>
max()
Returns the maximum (key, value) pair in the tree if the tree is not empty.Option<K>
maxKey()
Returns the maximum key in the tree if the tree is not empty.Option<P2<K,V>>
min()
Returns the minimum (key, value) pair in the tree if the tree is not empty.Option<K>
minKey()
Returns the minimum key in the tree if the tree is not empty.private static <K,V>
Ord<P2<K,V>>ord(Ord<K> keyOrd)
TreeMap<K,V>
set(K k, V v)
Inserts the given key and value association into the tree map.static <K,V>
TreeMap<K,V>setTreeMap(Ord<K> ord, Set<P2<K,Option<V>>> s)
Constructs a TreeMap from the given set.int
size()
Returns the number of entries in this tree map.P3<Set<V>,Option<V>,Set<V>>
split(Ord<V> ord, K k)
Splits this TreeMap at the given key.P3<TreeMap<K,V>,Option<V>,TreeMap<K,V>>
splitLookup(K k)
Splits this TreeMap at the given key.List<P2<K,V>>
toList()
List<P2<K,V>>
toListReverse()
java.util.Map<K,V>
toMutableMap()
A mutable map projection of this tree map.Stream<P2<K,V>>
toStream()
Stream<P2<K,V>>
toStreamReverse()
java.lang.String
toString()
static <K,V>
TreeMap<K,V>treeMap(Ord<K> keyOrd, P2<K,V>... p2s)
Constructs a tree map from the given elements.TreeMap<K,V>
union(TreeMap<K,V> t2)
The expressiont1.union(t2)
takes the left-biased union oft1
andt2
.TreeMap<K,V>
union(java.lang.Iterable<P2<K,V>> t2)
The expressiont1.union(t2)
takes the left-biased union oft1
andt2
.P2<java.lang.Boolean,TreeMap<K,V>>
update(K k, F<V,V> f)
Modifies the value for the given key, if present, by applying the given function to it.TreeMap<K,V>
update(K k, F<V,V> f, V v)
Modifies the value for the given key, if present, by applying the given function to it, or inserts the given value if the key is not present.List<V>
values()
Returns all values in this tree map.
-
-
-
Method Detail
-
empty
public static <K,V> TreeMap<K,V> empty(Ord<K> keyOrd)
Constructs an empty tree map.- Parameters:
keyOrd
- An order for the keys of the tree map.- Returns:
- an empty TreeMap with the given key order.
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
treeMap
@SafeVarargs public static <K,V> TreeMap<K,V> treeMap(Ord<K> keyOrd, P2<K,V>... p2s)
Constructs a tree map from the given elements.- Parameters:
keyOrd
- An order for the keys of the tree map.p2s
- The elements to construct the tree map with.- Returns:
- a TreeMap with the given elements.
-
iterableTreeMap
public static <K,V> TreeMap<K,V> iterableTreeMap(Ord<K> keyOrd, java.lang.Iterable<P2<K,V>> it)
Constructs a tree map from the given elements.- Parameters:
keyOrd
- An order for the keys of the tree map.it
- The elements to construct the tree map with.- Returns:
- A TreeMap with the given elements.
-
iteratorTreeMap
public static <K,V> TreeMap<K,V> iteratorTreeMap(Ord<K> keyOrd, java.util.Iterator<P2<K,V>> it)
Constructs a tree map from the given elements.- Parameters:
keyOrd
- An order for the keys of the tree map.it
- The elements to construct the tree map with.- Returns:
- A TreeMap with the given elements.
-
arrayTreeMap
@SafeVarargs public static <K,V> TreeMap<K,V> arrayTreeMap(Ord<K> keyOrd, P2<K,V>... ps)
Constructs a tree map from the given elements.- Parameters:
keyOrd
- An order for the keys of the tree map.ps
- The elements to construct the tree map with.- Returns:
- A TreeMap with the given elements.
-
get
public Option<V> get(K k)
Returns a potential value that the given key maps to.- Parameters:
k
- The key to look up in the tree map.- Returns:
- A potential value for the given key.
-
set
public TreeMap<K,V> set(K k, V v)
Inserts the given key and value association into the tree map. If the given key is already mapped to a value, the old value is replaced with the given one.- Parameters:
k
- The key to insert.v
- The value to insert.- Returns:
- A new tree map with the given value mapped to the given key.
-
delete
public TreeMap<K,V> delete(K k)
Deletes the entry in the tree map that corresponds to the given key.- Parameters:
k
- The key to delete from this tree map.- Returns:
- A new tree map with the entry corresponding to the given key removed.
-
size
public int size()
Returns the number of entries in this tree map.- Returns:
- The number of entries in this tree map.
-
isEmpty
public boolean isEmpty()
Determines if this tree map has any entries.- Returns:
true
if this tree map has no entries,false
otherwise.
-
values
public List<V> values()
Returns all values in this tree map.- Returns:
- All values in this tree map.
-
contains
public boolean contains(K k)
Determines if the given key value exists in this tree map.- Parameters:
k
- The key value to look for in this tree map.- Returns:
true
if this tree map contains the given key,false
otherwise.
-
iterator
public java.util.Iterator<P2<K,V>> iterator()
Returns an iterator for this map's key-value pairs. This method exists to permit the use in afor
-each loop.- Specified by:
iterator
in interfacejava.lang.Iterable<K>
- Returns:
- A iterator for this map's key-value pairs.
-
toMutableMap
public java.util.Map<K,V> toMutableMap()
A mutable map projection of this tree map.- Returns:
- A new mutable map isomorphic to this tree map.
-
fromMutableMap
public static <K,V> TreeMap<K,V> fromMutableMap(Ord<K> ord, java.util.Map<K,V> m)
An immutable projection of the given mutable map.- Parameters:
ord
- An order for the map's keys.m
- A mutable map to project to an immutable one.- Returns:
- A new immutable tree map isomorphic to the given mutable map.
-
get
public F<K,Option<V>> get()
Returns a first-class version of the get method for this TreeMap.- Returns:
- a functional representation of this TreeMap.
-
update
public P2<java.lang.Boolean,TreeMap<K,V>> update(K k, F<V,V> f)
Modifies the value for the given key, if present, by applying the given function to it.- Parameters:
k
- The key for the value to modify.f
- A function with which to modify the value.- Returns:
- A new tree map with the value for the given key transformed by the given function, paired with True if the map was modified, otherwise False.
-
update
public TreeMap<K,V> update(K k, F<V,V> f, V v)
Modifies the value for the given key, if present, by applying the given function to it, or inserts the given value if the key is not present.- Parameters:
k
- The key for the value to modify.f
- A function with which to modify the value.v
- A value to associate with the given key if the key is not already present.- Returns:
- A new tree map with the value for the given key transformed by the given function.
-
split
public P3<Set<V>,Option<V>,Set<V>> split(Ord<V> ord, K k)
Splits this TreeMap at the given key. Returns a triple of:- A set containing all the values of this map associated with keys less than the given key.
- An option of a value mapped to the given key, if it exists in this map, otherwise None.
- A set containing all the values of this map associated with keys greater than the given key.
- Parameters:
k
- A key at which to split this map.- Returns:
- Two sets and an optional value, where all elements in the first set are mapped to keys less than the given key in this map, all the elements in the second set are mapped to keys greater than the given key, and the optional value is the value associated with the given key if present, otherwise None.
-
setTreeMap
public static <K,V> TreeMap<K,V> setTreeMap(Ord<K> ord, Set<P2<K,Option<V>>> s)
Constructs a TreeMap from the given set.- Parameters:
ord
- An order for the keys of the tree map.s
- The elements to construct the tree map with.- Returns:
- a TreeMap with the given elements.
-
splitLookup
public P3<TreeMap<K,V>,Option<V>,TreeMap<K,V>> splitLookup(K k)
Splits this TreeMap at the given key. Returns a triple of:- A tree map containing all the values of this map associated with keys less than the given key.
- An option of a value mapped to the given key, if it exists in this map, otherwise None.
- A tree map containing all the values of this map associated with keys greater than the given key.
- Parameters:
k
- A key at which to split this map.- Returns:
- Two tree maps and an optional value, where all keys in the first tree map are mapped to keys less than the given key in this map, all the keys in the second tree map are mapped to keys greater than the given key, and the optional value is the value associated with the given key if present, otherwise None.
-
map
public <W> TreeMap<K,W> map(F<V,W> f)
Maps the given function across the values of this TreeMap.- Parameters:
f
- A function to apply to the values of this TreeMap.- Returns:
- A new TreeMap with the values transformed by the given function.
-
min
public Option<P2<K,V>> min()
Returns the minimum (key, value) pair in the tree if the tree is not empty.
-
max
public Option<P2<K,V>> max()
Returns the maximum (key, value) pair in the tree if the tree is not empty.
-
union
public TreeMap<K,V> union(TreeMap<K,V> t2)
The expressiont1.union(t2)
takes the left-biased union oft1
andt2
. It preferst1
when duplicate keys are encountered.- Parameters:
t2
- The other tree we wish to combine with this one- Returns:
- The combined TreeMap
-
-