Создание хэша из нескольких строковых объектов Java

Каким будет самый быстрый и надежный (с точки зрения уникальности) способ реализации такого метода, как

public abstract String hash(String[] values);

Массив values[]содержит от 100 до 1000 элементов, каждый из которых содержит несколько десятков символов, и метод необходимо запускать примерно 10 000 раз в секунду для разных массивов values[]каждый раз.

Следует ли строить длинную строку с использованием буфера StringBuilder, а затем вызывать метод хеширования для содержимого буфера, или лучше продолжать вызывать метод хеширования для каждой строки из значений[] ?

Очевидно, что для предотвращения коллизий требуется хеш длиной не менее 64 бит (например, MD5), но можно ли сделать что-нибудь проще и быстрее с тем же качеством?

Например, как насчет

public String hash(String[] values)
{
    long result = 0;

    for (String v:values)
    {
        result += v.hashCode();
    }

    return String.valueOf(result);
}
9
задан PNS 14 May 2012 в 16:38
поделиться