У меня есть список с 100.000 элементов в нем. Каждый из этих элементов содержит Hashmap, который хранит многие из этих элементов.
Вычисление зависимостей между объектами занимает очень много времени, поэтому я хочу сериализовать результат, чтобы быстро его прочитать. Элементы являются узлами графа, а элементы в хэш-карте являются их соседями, а веса ребер -
Важно сохранять ссылки между объектами после десериализации, то есть элементы в хэш-карте должны бытьточно такие же объекты, как те, что в моем списке 100.000 элементов. Я пробовал сериализацию Java, но я получаю стек-подсвечивание, так как в списке слишком много циклических ссылок. Я попытался сериализовать каждый из элементов в дополнительном шаге:
out.writeObject(o);
вызывается для каждого элемента в списке. Но после десерилизации хеш-карты в элементах равны нулю.
Я попытался сохранить его в базе данных, используя hibernate, но если я использую
@org.hibernate.annotations.Type(
type = "org.hibernate.type.SerializableToBlobType"
)
Элементы в моей карте выглядят одинаково, но являются новыми объектами.
Я создал новый класс, который содержит ключ и объект из моей карты, и сохранил его в дополнительной таблице базы данных, но гибернации навсегда извлекают их.
Заменаобъекты после десериализации вместе с их оригиналами тоже будут работать вечно.
Есть ли у кого-нибудь идея, как сохранить этот список, чтобы использовать его быстро в любое время? Я готов попробовать другой формат данных для хранения графика. Есть какие-нибудь идеи? Спасибо!