Java - Как создать хеш-идентификатор из списка строк - PullRequest
0 голосов
/ 27 октября 2018

У меня есть список строк. Я хочу сгенерировать один хэш-код из всех строк списка. Как я могу это сделать ?

Ответы [ 3 ]

0 голосов
/ 27 октября 2018

Попробуйте это:

int hashCode = Objects.hash(list.toArray());
0 голосов
/ 27 октября 2018

Вы могли бы просто взять hashCode из списка, но это может быть хитроумно, если вы собираетесь иметь разные реализации List, содержащие одинаковые строки.Более надежное решение, основанное только на самих строках, может заключаться в использовании Arrays#hashCode:

int hash = Arrays.hashCode(list.toArray());

Обратите внимание, однако, что этот хэш-код зависит от порядка элементовмассива, поэтому, если вам не важен порядок строк в списке, вы можете отсортировать этот массив так, чтобы одни и те же строки создавали одинаковый хэш-код.

0 голосов
/ 27 октября 2018

Если у вас есть список объектов, вы можете сделать

List<String> list = ...
int hashCode = list.hashCode();

hashCode использует содержимое.Есть много вариантов улучшения хеш-кода, если вам нужно, но это самое простое.

...