Re: Question about HashMap and Map.Entry ...
On 30.08.2012 23:55, Andreas Leitgeb wrote:
Daniel Pitts <newsgroup.nospam@virtualinfinity.net> wrote:
On 8/30/12 12:32 PM, Andreas Leitgeb wrote:
Damn, on re-read, I notice, that my own implementation of
Map.Entry could just hold a ref to the map and implement
setValue() to write the value back into the Map...
Or, if you know all the keys before hand, you can use instead Map<Long,
MyLongWrapper> map.
I know all the relevant keys before hand. I currently do
an initial map.put(k,0L) for each relevant "k".
MyLongWrapper would have .set() and .get(), or even .actUpon()
depending on the semantics you need.
Indeed, that is a more elegant approach, than mine.
Although it won't save me the extra containsKey(), as I'll
be also having "k"s that aren't in the map,
containsKey() is unnecessary work. Just get(), and if it's null create
a new MyLongWrapper. Btw, if you use long as member instead of Long
then you do not even necessarily have more objects.
containsKey() is only ever useful if you have null values in a Map or
are just interested in the fact whether a key is present or not. Other
than that just get() is more efficient even though effects might be
negligible.
Cheers
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/