У нас есть требование чтения/записи более 10 миллионов строк в файл. Также мы не хотим дубликатов в файле. Поскольку строки будут сбрасываться в файл, как только они будут прочитаны, мы не будем их хранить в памяти.построить уникальный номер для строки в java
Мы не можем использовать hashcode из-за столкновений в хеш-коде, из-за которого мы могли бы пропустить строку как дубликат. Два других подхода, которые я нашел в моем поиске:
1.Используйте алгоритм дайджеста сообщений, например MD5, - но это может быть слишком дорогостоящим для расчета и хранения.
2.Используйте алгоритм контрольной суммы. [Я не уверен, что это дает уникальный ключ для строки - может кто-то подтвердит подтверждение)
Есть ли какой-либо другой подход. Спасибо.
Можно ли сортировать и дедуплировать файл после создания? –
MD5 - фактически алгоритм контрольной суммы. Однако две разные строки могут иметь одну и ту же контрольную сумму. – Tedil
вы не собираетесь столкнуться с REAL hashcode, например SHA1 или SHA. MD5 __IS__ - хэш-код. Коды контрольных сумм предназначены для того, чтобы данные не были повреждены, это не поможет вам с уникальностью. –