Улучшение подсчета частот слов с помощью хэш-карты

Для одного из моих приложений следующая функция должна вызываться очень часто. Эта функция занимает много ЦП, и поэтому мне интересно, знаете ли вы, как повысить производительность.

Код считает появление комбинации из четырех символов. Во время тестирования я обнаружил, что количество записей на карте около 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;
}
7
задан IAdapter 3 December 2010 в 23:49
поделиться