У меня есть программа, которая учитывает вхождения слов в заданном массиве. Он хранит слова и его количество. Например, в данном массиве:Как заменить HashMap <String, Integer> на массив?
String array[] = {"cat", "dog", "cat"};
У меня есть 2 кошки и 1 собака. Делая это с HashMap довольно прост:
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < wordarray.length; i++) {
String word = wordarray[i].toLowerCase();
if (map.containsKey(word)) {
map.put(word, map.get(word) + 1);
} else {
map.put(word, 1);
}
}
Тогда мне просто нужно распечатать его:
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
Но есть ли способ сделать это без HashMap
только с использованием массивов объектов?
Два измерения массив ?? – Omar
Причина использования HashMap заключается в том, что он имеет уникальные ключи, такие как Set. Таким образом, вы можете проверить, существует ли строка, которую вы ищете, без необходимости перебирать весь массив. –
Реализация/повторное использование хеш-таблицы с открытой адресацией (http://en.wikipedia.org/wiki/Open_addressing)? –