Wiem, że struktura danych może przechowywać unikalne łańcuchy i mówić, że łańcuch jest obecny ze złożonością O (1), ponieważ używa kodu skrótu. Czy tę samą złożoność można osiągnąć, jeśli chcę zignorować przypadek z listu? Następny przypadek powinien zadziałać:Struktura danych przechowująca ciągi znaków i ignorująca wielkość liter
Set<String> set = new IgnoreLetterCaseSet();
set.add("New York");
set.contains("new york") == true;
set.contains("NEW YORK") == true;
set.each(it -> print it) ---> prints "New York"
Czy możliwe jest wdrożenie takiej struktury danych?
@dave ostatniej linii kodu - drukuje w Nowym Jorku, jako że została włożona, nie można znormalizować ciąg do małych liter przy wstawianiu –
Co się stanie, jeśli utworzysz nową klasę, która rozszerzyła 'String', przesłaniając metody' .equals() 'i' .hashCode() '? –
@jameslarge Klasa String jest ostateczna, nie może być przedłużona. – dave