Re: cast to sub-class or extending instance of super or a.n.other
 
Richard Maher wrote:
Random thoughts: - Keeping them in synch, redundant, extra o/head
That's "overhead", right?
Don't be afraid to spell it out - it's all right.  At 30 words per minute, the 
two characters you didn't type would have cost you less than one second, and 
made your post more readable.
I don't know enough about HashMaps and HashTables (I'll read more today) but
There are a number of implementations of 'java.util.Map' in the standard API, 
let alone third-party libraries.  I'm not aware of any called 'HashTable'. 
There is an old implementation, 'java.util.Hashtable', that you should eschew 
in favor of 'java.util.HashMap'.  'Hashtable', besides having nearly all its 
methods synchronized, sports the helper type 'Enumeration', which is something 
like a lame 'Iterator' that lacks the fail-fast behavior of its 'Iterator'. 
You're better off using 'HashMap' or another implementation, and wrap it in 
'Collections.synchronizedMap()' if you need synchronized methods.  There are 
also 'Map' implementations in the 'java.util.concurrent' package for better 
performance or more sophisticated locking in multi-threaded applications.
I still like the look of ArrayLists, so I'm gonna stick with them a bit
longer. A guiding factor in the design is that by far and away the
biggest/most-often lookup hit is via "Index". Aren't HashThings more of a
key/value construct? Named/Valued pairs?
Five minutes with the 'Map' Javadocs will answer that question for you.  But 
yes, as the Javadocs state, a 'Map' instance is an "object that maps keys to 
values."  And no, the keys do not have to be names.
Not all 'Map' implementations are named with the word part 'Hash'.  Examples 
include 'Attributes', 'AuthProvider', 'ConcurrentSkipListMap', 'EnumMap', 
'Properties', 'RenderingHints' and 'TreeMap', just to name a few from the 
standard API.
As to comparing 'List' to 'Map', that's a kind of apples-to-oranges 
comparison.  They have different purposes and characteristics.
You should know about maps.  They are a fundamental data structure, and a 
fundamental part of the collections API.  If all you have in your toolbox is a 
hammer, everything begins to look like a nail.  It is not a good idea to delay 
the acquisition of that knowledge.
-- 
Lew