Для одного из моих приложений следующая функция должна вызываться очень часто. Эта функция занимает много ЦП, и поэтому мне интересно, знаете ли вы, как повысить производительность.
Код считает появление комбинации из четырех символов. Во время тестирования я обнаружил, что количество записей на карте около 100. Длина текста находится в диапазоне от 100 до 800. Начальный размер 200 является предположением, и код работает быстрее, чем без указания начального размера. Хотя, вероятно, это не оптимальное значение.
private Map<String, Integer> getTetagramCount(final String text) {
final Map<String, Integer> cipherTetagrams = new HashMap<String, Integer>(200);
for (int i = 0; i < text.length() - 4; i++) {
final String tet = text.substring(i, i + 4);
final Integer count = cipherTetagrams.get(tet);
if (count != null) {
cipherTetagrams.put(tet, count + 1);
} else {
cipherTetagrams.put(tet, 1);
}
}
return cipherTetagrams;
}