commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From __matthewHawthorne <ma...@phreaker.net>
Subject Re: [collections] BidiMap / DoubleOrderedMap
Date Mon, 22 Sep 2003 21:38:31 GMT
I've started some work on converting DoubleOrderedMap to TreeBidiMap.

What is the suggested name for the basic BidiMap implementation which is 
n't sorted?  DefaultBidiMap?




Stephen Colebourne wrote:

> I have been prompted to take a look at DoubleOrderedMap by bugzilla and been
> a little surprised by what I found. Given the history of collections, what
> we have is a single implementation brought in from an external project.
> [collections] should do better :-)
> 
> A bidirectional map is a relatively standard concept in computing. It is a
> map where you can use a key to find a value, or a value to find a key with
> equal ease. This deserves its own interface in [collections] - BidiMap.
> 
> The DoubleOrderedMap class goes beyond this by being Sorted, effectively
> holding all entries in a Compared order always. This effectively equates to
> a second interface in [collections] - SortedBidiMap.
> 
> BidiMap
> ----------
> Map methods +
> BidiMap inverseBidiMap()
> Object getKeyForValue(Object value)
> Object removeValue(Object value)
> Set entrySetByValue()
> Set keySetByValue()
> Collection valuesByValue()
> (these method names are from DoubleOrderedMap, and seem OKish)
> 
> SortedBidiMap
> ----------------
> BidiMap + SortedMap +
> inverseSortedBidiMap()
> subMapByValue()
> headMapByValue()
> tailMapByValue()
> 
> The existing DoubleOrderedMap is an implementation of SortedBidiMap. However
> I would like to rename it to TreeBidiMap.
> 
> An alternative implementation of BidiMap would then be needed, which would
> be useful as it would not require objects to be comparable.
> 
> With these new interfaces, decorators could then be written as required.
> 
> Anything obvious I've missed? Any volunteers?
> 
> Stephen



Mime
View raw message