|
Side of Software Dated Collections Library 2.0 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object sos.dated.util.AbstractDatedObject<D> sos.dated.util.AbstractDatedMap<K,V,D> sos.dated.util.HashMapByKey<K,V,D>
K
- the type of keys maintained by this dated mapV
- the type of values maintained by this dated mapD
- the type of dates used by this dated mappublic class HashMapByKey<K,V,D>
An implementation of DatedMap
that indexes its keys with a
java.util.HashMap
, yielding fast insertions and removals.
The following illustration shows a conceptual view of
a small HashMapByKey
where the "dates" are integers, the keys are
characters, and the values are special characters:
In the above picture, the dated map contains the following entries for the following ranges:
[1,2): {(K,$),(B,+),(M,%)} [3,5): {(K,+),(A,+),(B,$),(M,^)} [5,6): {(K,#),(M,^)} [6,9): {(K,#),(A,@),(B,%)}This implementation is serializable and cloneable; however, it is not synchronized. To use it safely in a multi-threaded situation, wrap an instance of the dated map with a call to
DatedCollections.synchronizedDatedMap
.
HashMapByDate
,
TreeMapByKey
,
DatedMap
,
DatedCollections.synchronizedDatedMap(DatedMap)
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface sos.dated.util.DatedMap |
---|
DatedMap.Entry<K,V,D> |
Constructor Summary | |
---|---|
HashMapByKey()
Creates a new instance of HashMapByKey . |
|
HashMapByKey(DatedMap<? extends K,? extends V,D> datedMap)
Creates a new instance of HashMapByKey from the specified
dated map. |
|
HashMapByKey(int initialCapacity)
Creates a new instance of HashMapByKey with the specified initial capacity
and default load factor (0.75). |
|
HashMapByKey(int initialCapacity,
float loadFactor)
Creates a new instance of HashMapByKey with the specified initial capacity
and load factor. |
Method Summary | |
---|---|
protected void |
checkForComodification(int expectedModCount,
D date)
Throws a ConcurrentModificationException if the expected modification count does not equal the actual modification count for the specified date. |
java.lang.Object |
clone()
Creates and returns a shallow copy of this object. |
boolean |
containsKey(java.lang.Object key,
D at)
Returns true if this dated map contains the specified key at the
specified date. |
boolean |
containsKeyThroughout(java.lang.Object key,
D from,
D to)
Returns true if this dated map contains the specified key throughout
the specified date range. |
DateIterator<D> |
dateIterator(D at)
Returns an iterator of the date ranges of when this dated object has changed, starting at the range that contains the specified date. |
DatedSet<DatedMap.Entry<K,V,D>,D> |
entrySet()
Returns a modifiable view of the mappings of this dated map. |
boolean |
excludesKeyThroughout(java.lang.Object key,
D from,
D to)
Returns true if this dated map does not contain the specified key at any date
within the specified date range. |
DatedValue<V,D> |
get(java.lang.Object key)
Returns the values associated with the specified key for all dates. |
protected int |
modCount(D at)
Returns the modification count at the specified date. |
DatedValue<V,D> |
put(K key,
V value,
D from,
D to)
Associates key with value in this dated map during
the specified date range. |
DatedValue<V,D> |
remove(java.lang.Object key,
D from,
D to)
Removes any values associated with the specified key in the specified date range. |
protected void |
upModCount(D from,
D to)
Adds 1 to the modification count for the specified date range. |
Methods inherited from class sos.dated.util.AbstractDatedMap |
---|
clear, containsValue, containsValueThroughout, equals, excludesValueThroughout, get, hashCode, hasSizeThroughout, isEmpty, isEmptyThroughout, keySet, putAll, size, toString, values |
Methods inherited from class sos.dated.util.AbstractDatedObject |
---|
dateIterator, equals, hashCode, toString |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface sos.dated.util.DatedMap |
---|
clear, containsKey, containsKeyThroughout, containsValue, containsValueThroughout, entrySet, equals, excludesKeyThroughout, excludesValueThroughout, get, get, hashCode, hasSizeThroughout, isEmpty, isEmptyThroughout, keySet, put, putAll, remove, size, values |
Methods inherited from interface sos.dated.util.DatedObject |
---|
dateIterator, dateIterator, equals, hashCode, toString |
Constructor Detail |
---|
public HashMapByKey()
HashMapByKey
.
public HashMapByKey(int initialCapacity)
HashMapByKey
with the specified initial capacity
and default load factor (0.75).
The initial capacity is used to initialize the underlying java.util.HashMap
,
which holds all mappings across all time.
initialCapacity
- initial capacity of the underlying hash map
java.lang.IllegalArgumentException
- if initialCapacity < 0
public HashMapByKey(int initialCapacity, float loadFactor)
HashMapByKey
with the specified initial capacity
and load factor.
initialCapacity
- initial capacity of the underlying hash maploadFactor
- load factor of the underlying hash map
java.lang.IllegalArgumentException
- if initialCapacity < 0
or
if loadFactor <= 0.0
public HashMapByKey(DatedMap<? extends K,? extends V,D> datedMap)
HashMapByKey
from the specified
dated map.
datedMap
- dated map for which to initialize this HashMapByKey
java.lang.NullPointerException
- if the parameter is null
Method Detail |
---|
public java.lang.Object clone()
protected void checkForComodification(int expectedModCount, D date)
expectedModCount
- the caller's expected modification countdate
- the date in question
java.util.ConcurrentModificationException
- if the expected modification
count does not equal the actual modification count for the specified datepublic boolean containsKey(java.lang.Object key, D at)
true
if this dated map contains the specified key at the
specified date.
containsKey
in interface DatedMap<K,V,D>
containsKey
in class AbstractDatedMap<K,V,D>
key
- key whose presence is to be testedat
- date at which this map is to be queried
true
if this dated map contains the specified key at the
specified date
java.lang.NullPointerException
- if at
is null
public boolean containsKeyThroughout(java.lang.Object key, D from, D to)
true
if this dated map contains the specified key throughout
the specified date range.
containsKeyThroughout
in interface DatedMap<K,V,D>
containsKeyThroughout
in class AbstractDatedMap<K,V,D>
key
- key whose presence is to be testedfrom
- starting date (inclusive) at which containment should be testedto
- ending date (exclusive) at which containment should be tested
true
if this dated map contains the specified key
throughout the specified date range
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if from
or to
is null
public DateIterator<D> dateIterator(D at)
DatedObject
nextFrom
returns the
same date as previousTo
.
Passing null
as the argument will return an iterator positioned
at the beginning of the sequence.
dateIterator
in interface DatedObject<D>
dateIterator
in class AbstractDatedObject<D>
at
- date to position the iteration
public boolean excludesKeyThroughout(java.lang.Object key, D from, D to)
true
if this dated map does not contain the specified key at any date
within the specified date range.
excludesKeyThroughout
in interface DatedMap<K,V,D>
excludesKeyThroughout
in class AbstractDatedMap<K,V,D>
key
- key whose presence is to be testedfrom
- starting date (inclusive) at which exclusion should be testedto
- ending date (exclusive) at which exclusion should be tested
true
if this dated map does not contain key key
between from
and to
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if if from
or to
is null
public DatedValue<V,D> get(java.lang.Object key)
get
in interface DatedMap<K,V,D>
get
in class AbstractDatedMap<K,V,D>
key
- key whose values are to be returned
key
protected int modCount(D at)
at
. If assertions are not enabled, the returned
value is always zero.
at
- date to request the modification count
public DatedValue<V,D> put(K key, V value, D from, D to)
key
with value
in this dated map during
the specified date range.
put
in interface DatedMap<K,V,D>
put
in class AbstractDatedMap<K,V,D>
key
- key to put in this dated mapvalue
- value to map to the keyfrom
- starting date (inclusive) at which to put the mappingto
- ending date (exclusive) at which to put the mapping
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if from
or to
is null
protected void upModCount(D from, D to)
from
- starting date (inclusive) for which to increment the countto
- ending date (exclusive) for which to increment the countpublic DatedSet<DatedMap.Entry<K,V,D>,D> entrySet()
entrySet
in interface DatedMap<K,V,D>
entrySet
in class AbstractDatedMap<K,V,D>
public DatedValue<V,D> remove(java.lang.Object key, D from, D to)
remove
in interface DatedMap<K,V,D>
remove
in class AbstractDatedMap<K,V,D>
key
- key indicating which mapping to removefrom
- starting date (inclusive) at which to remove the mappingto
- ending date (exclusive) at which to remove the mapping
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if from
or to
is null
|
Side of Software Dated Collections Library 2.0 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |