Java: сериализировать большой список со ссылками - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть список с 100.000 элементов в нем. Каждый из этих элементов содержит Hashmap, который хранит многие из этих элементов.

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

Важно сохранять ссылки между объектами после десериализации, то есть элементы в хэш-карте должны бытьточно такие же объекты, как те, что в моем списке 100.000 элементов. Я пробовал сериализацию Java, но я получаю стек-подсвечивание, так как в списке слишком много циклических ссылок. Я попытался сериализовать каждый из элементов в дополнительном шаге:

out.writeObject(o);

вызывается для каждого элемента в списке. Но после десерилизации хеш-карты в элементах равны нулю.

Я попытался сохранить его в базе данных, используя hibernate, но если я использую

@org.hibernate.annotations.Type(
        type = "org.hibernate.type.SerializableToBlobType"
 )

Элементы в моей карте выглядят одинаково, но являются новыми объектами.

Я создал новый класс, который содержит ключ и объект из моей карты, и сохранил его в дополнительной таблице базы данных, но гибернации навсегда извлекают их.

Заменаобъекты после десериализации вместе с их оригиналами тоже будут работать вечно.

Есть ли у кого-нибудь идея, как сохранить этот список, чтобы использовать его быстро в любое время? Я готов попробовать другой формат данных для хранения графика. Есть какие-нибудь идеи? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...