Stephen Colebourne wrote:
From: "Phil Steitz" <[EMAIL PROTECTED]>

2. I made no attempt at allowing the locale to be set or otherwise
changing the default behavior of toLower() in convert().

I'm wondering how your implementation works. I was expecting the

isEqualKey() method to be overridden, rather than converting the key on add. (Note that the same code also has to go in a MapEntry)

Could be I was being too lazy.  Since toLower() is "idempotent" (calling
it repeatedly has same effect as calling it just once) it "works" to just
override convert(), since in AbstractHashedMap, get, put, remove,
containsKey, all start by converting the key (nice!).  All I did was to
extend HashedMap and override convert to return
key.toString().toLowerCase().  The effect is that you actually store all
lower case strings as keys (or null, once I fix this). The behavior should
be the same as the impl that David Graham posted with PR #24537 (unless I
am missing something -- quite possible).

This impl will work, but I would prefer to see the case of the key maintained, just the comparison to be case insensitive.

Why exactly? Would you expect equals to distinguish CaseInsensitiveHashMaps that differ only on key case?


Phil


Stephen



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to