From: "Phil Steitz" <[EMAIL PROTECTED]> > >>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?
Well CaseInsensitive as a name doesn't imply to me that it changes anything. It implies that is compares insenstively (including equals, which should be handled). This map would be a LowerCaseKeyMap or some such. It strikes me that if I put a key in one way, I should get it back that way too. BTW: the names now exclude 'Hash' as much as possible, hence it would be CaseInsensitiveMap Stephen --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
