Я получил следующий вопрос из интервью.
Мне был присвоен массив символов следующим образом:
char[] characters = {'u', 'a', 'u', 'i', 'o', 'f', 'u'};
Мне нужно было получить разные символы и числа каждого символа:
u = 3
a = 1
i = 1
o = 1
f = 1
Итак, я ответил на Java следующим кодом:
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
int i = 1;
for (char c : characters) {
if (map.containsKey(c)) {
int val = map.get(c);
map.put(c, ++val);
} else map.put(c, i);
}
Интервьюер был архитектором решений. Он спросил меня, почему я использовал методы containsKey()
и get()
здесь и отметил, что использовать оба метода было излишним. В чем его смысл? Что я здесь делал неправильно? Изменит ли мой код проблему с производительностью и т.д.?