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]
