Этот бит:
str.hashCode() == 1471587914 && str.toLowerCase().hashCode() == 1472541258;
является подозрительным.Строки являются типами значений типа сортировки в Java, поэтому, если у вас есть две строки, которые оба «мяу», велика вероятность, что они занимают одно и то же пространство памяти и, следовательно, имеют одинаковое значение hashcode()
.Однако, если вы возьмете toLowerCase()
этой строки, вы получите новую, другую строку и очень высокую вероятность другого хеш-кода.
Итак, вопрос в том, чего именно вы пытаетесь достичьс этой линией?