Hej, mam małe pytanka dotyczące Javy, jeśli są głupie to przepraszam, ale się uczę:
Zrobiłam sobie implementację drzewa Trie z tablicami (każdy węzeł ma 52 węzły dzieci, na początku jako nulle) oraz z hashmapą (brak pustych dzieci, tylko cięższe mi się to na razie wydaje):
-
Czytałam o funkcjach statycznych. Jak dobrze rozumiem, stosuję się je np. dla klas które udostępniają funkcje biblioteczne niezależne od samej klasy - np. jakieś operacje matematyczne.
Czy jeśli moje drzewo ma wewnętrzną prywatną metodę calculateIndex(char c):private int calculateIndex(char c) { if (c >= 'A' && c <= 'Z') return c - BIG_A_ASCII_CODE + ALPHABET_SIZE/2; //wyniki 26-51 else return c - SMALL_A_ASCII_CODE; //wyniki 0-25 }
to czy powinna ona być statyczna? <ta metoda jest tylko dla implementacji wykorzystującej tablice>
-
Chciałabym aby moja funkcja informowała, że znak na wejściu jest spoza zakresu 'a' - 'z' lub 'A' - 'Z'. Jak powinno to być zrobione? Jakiś wyjątek ze standardowych z Javy?
private int calculateIndex(char c) { if (c >= 'A' && c <= 'Z') return c - BIG_A_ASCII_CODE + ALPHABET_SIZE/2; //wyniki 26-51 else if (c >= 'a' && c <= 'z') return c - SMALL_A_ASCII_CODE; //wyniki 0-25 else // co tutaj? }
-
Czy jest jakiś "najbardziej polecany" sposób na iterację po literach Stringa w Javie?
Taki wydaje się słaby :/ :
for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == 'O') { // } }