org.omnaest.utils.structure.map
Interface DualMap<FIRSTELEMENT,SECONDELEMENT>

Type Parameters:
FIRSTELEMENT -
SECONDELEMENT -
All Known Implementing Classes:
LinkedHashDualMap

public interface DualMap<FIRSTELEMENT,SECONDELEMENT>

A dual map is the dual way counterpart of the Map interface. All DualMap implementations should ensure that both elements are treated as keys, so the search within large sized DualMaps should be fast using either of the elements.

Be aware of the fact that both indexes can have different sizes, since there can be 1:n relationships being put into the map, but stored are only the last inserted 1:1 relationship. This means adding (a,c) and (b,c) will result in "b" being found for a search after the second element "c". "a" will be lost in the first index in this case.

Author:
Omnaest

Method Summary
 void clear()
          Clears the indexes.
 boolean contains(Object element)
          Returns true, if the element is contained in one of the two indexes.
 boolean containsFirstElement(FIRSTELEMENT firstElement)
          Returns true, if the element is contained in one of the two indexes.
 boolean containsSecondElement(SECONDELEMENT secondElement)
          Returns true, if the element is contained in one of the two indexes.
 FIRSTELEMENT getFirstElementBy(SECONDELEMENT secondElement)
          Returns the first element resolved by the second element.
 List<FIRSTELEMENT> getFirstElementList()
           
 Map<FIRSTELEMENT,SECONDELEMENT> getFirstElementToSecondElementMap()
          Returns a new Map instance.
 SECONDELEMENT getSecondElementBy(FIRSTELEMENT firstElement)
          Returns the second element resolved by the first element.
 List<SECONDELEMENT> getSecondElementList()
           
 Map<SECONDELEMENT,FIRSTELEMENT> getSecondElementToFirstElementMap()
          Returns a new Map instance.
 boolean isEmpty()
          Returns true, if both indexes are empty.
 DualMap<FIRSTELEMENT,SECONDELEMENT> put(FIRSTELEMENT firstElement, SECONDELEMENT secondElement)
          Puts a two elements into the DualMap
 DualMap<FIRSTELEMENT,SECONDELEMENT> putAll(DualMap<? extends FIRSTELEMENT,? extends SECONDELEMENT> firstElementAndSecondElementDualMap)
           
 DualMap<FIRSTELEMENT,SECONDELEMENT> putAllFirstElementToSecondElement(Map<? extends FIRSTELEMENT,? extends SECONDELEMENT> firstElementToSecondElementMap)
           
 DualMap<FIRSTELEMENT,SECONDELEMENT> putAllSecondElementToFirstElement(Map<? extends SECONDELEMENT,? extends FIRSTELEMENT> secondElementToFirstElementMap)
           
 void removeFirstElement(FIRSTELEMENT firstElement)
          Removes the given first element from the first index and the resolved second element from the second index.
 void removeSecondElement(SECONDELEMENT secondElement)
          Removes the given second element from the second index and the resolved first element from the first index.
 int size()
          Returns the size of the larger index
 

Method Detail

clear

void clear()
Clears the indexes.


contains

boolean contains(Object element)
Returns true, if the element is contained in one of the two indexes.

Parameters:
element -
Returns:

containsFirstElement

boolean containsFirstElement(FIRSTELEMENT firstElement)
Returns true, if the element is contained in one of the two indexes.

Parameters:
firstElement -
Returns:

containsSecondElement

boolean containsSecondElement(SECONDELEMENT secondElement)
Returns true, if the element is contained in one of the two indexes.

Parameters:
secondElement -
Returns:

isEmpty

boolean isEmpty()
Returns true, if both indexes are empty.

Returns:

getFirstElementBy

FIRSTELEMENT getFirstElementBy(SECONDELEMENT secondElement)
Returns the first element resolved by the second element.

Parameters:
secondElement -
Returns:
See Also:
getSecondElementBy(Object)

getSecondElementBy

SECONDELEMENT getSecondElementBy(FIRSTELEMENT firstElement)
Returns the second element resolved by the first element.

Parameters:
firstElement -
Returns:
See Also:
getFirstElementBy(Object)

getFirstElementList

List<FIRSTELEMENT> getFirstElementList()
Returns:
See Also:
getFirstElementToSecondElementMap(), getSecondElementList()

getSecondElementList

List<SECONDELEMENT> getSecondElementList()
Returns:
See Also:
getSecondElementToFirstElementMap(), getFirstElementList()

put

DualMap<FIRSTELEMENT,SECONDELEMENT> put(FIRSTELEMENT firstElement,
                                        SECONDELEMENT secondElement)
Puts a two elements into the DualMap

Parameters:
firstElement -
secondElement -
Returns:
this

putAll

DualMap<FIRSTELEMENT,SECONDELEMENT> putAll(DualMap<? extends FIRSTELEMENT,? extends SECONDELEMENT> firstElementAndSecondElementDualMap)
Parameters:
firstElementAndSecondElementDualMap -
Returns:
this
See Also:
put(Object, Object), putAllFirstElementToSecondElement(Map), putAllSecondElementToFirstElement(Map)

putAllFirstElementToSecondElement

DualMap<FIRSTELEMENT,SECONDELEMENT> putAllFirstElementToSecondElement(Map<? extends FIRSTELEMENT,? extends SECONDELEMENT> firstElementToSecondElementMap)
Parameters:
firstElementToSecondElementMap -
Returns:
this
See Also:
putAll(DualMap), putAllSecondElementToFirstElement(Map)

putAllSecondElementToFirstElement

DualMap<FIRSTELEMENT,SECONDELEMENT> putAllSecondElementToFirstElement(Map<? extends SECONDELEMENT,? extends FIRSTELEMENT> secondElementToFirstElementMap)
Parameters:
secondElementToFirstElementMap -
Returns:
this
See Also:
putAll(DualMap), putAllFirstElementToSecondElement(Map)

removeFirstElement

void removeFirstElement(FIRSTELEMENT firstElement)
Removes the given first element from the first index and the resolved second element from the second index.

Parameters:
firstElement -

removeSecondElement

void removeSecondElement(SECONDELEMENT secondElement)
Removes the given second element from the second index and the resolved first element from the first index.

Parameters:
secondElement -

size

int size()
Returns the size of the larger index

Returns:

getSecondElementToFirstElementMap

Map<SECONDELEMENT,FIRSTELEMENT> getSecondElementToFirstElementMap()
Returns a new Map instance.

Returns:
See Also:
getFirstElementToSecondElementMap(), getFirstElementList()

getFirstElementToSecondElementMap

Map<FIRSTELEMENT,SECONDELEMENT> getFirstElementToSecondElementMap()
Returns a new Map instance.

Returns:
See Also:
getSecondElementToFirstElementMap(), getSecondElementList()


Copyright © 2011. All Rights Reserved.