klizter
03/20/2019, 3:07 PMMap
where key is String
and case insensitive?amanda.hinchman-dominguez
03/20/2019, 3:08 PMmapName[keyName.toLowerCase()]
or somethingAlowaniak
03/20/2019, 3:09 PMstreetsofboston
03/20/2019, 3:10 PMclass LowerCase(val value: String) {
// write your own equals and hashCode to make it case insensitive
}
and have some nice toplevel or extension function to create a LowerCase from a StringDavid Cuesta
03/20/2019, 3:10 PMkarelpeeters
03/20/2019, 3:15 PMComparator
? That's not really necessary here, right?klizter
03/20/2019, 3:15 PMFredrik Larsen
03/20/2019, 3:16 PMi
will be replaced with ı
.David Cuesta
03/20/2019, 3:20 PMklizter
03/20/2019, 3:33 PMdata class HeaderName(val key: String) {
override fun hashCode() = key.toLowerCase().hashCode()
override fun equals(other: Any?): Boolean {
return this.hashCode() == other.hashCode()
}
}
Looks good?karelpeeters
03/20/2019, 3:34 PMkarelpeeters
03/20/2019, 3:35 PMamanda.hinchman-dominguez
03/20/2019, 3:35 PMkarelpeeters
03/20/2019, 3:35 PMequals
at all, there's a bunch of stuff you need to check there.klizter
03/20/2019, 3:37 PMkarelpeeters
03/20/2019, 3:37 PMkarelpeeters
03/20/2019, 3:38 PMklizter
03/20/2019, 3:38 PMamanda.hinchman-dominguez
03/20/2019, 3:39 PMkarelpeeters
03/20/2019, 3:40 PMclass HeaderName(val key: String) {
override fun hashCode() = key.toLowerCase(Locale.ROOT).hashCode()
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as HeaderName
return key.toLowerCase(Locale.ROOT) == other.key.toLowerCase(Locale.ROOT)
}
}
karelpeeters
03/20/2019, 3:41 PMtoLowerCase
result:
class HeaderName(key: String) {
val key = key.toLowerCase(Locale.ROOT)
override fun hashCode() = key.hashCode()
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as HeaderName
return key == other.key
}
}
klizter
03/20/2019, 3:47 PM