Хранение ацикличного графа в файле
Ищу альтернативу БД в своём приложении, нужна быстрая запись и поиск по строкам. Рассматриваю вариант с библиотекой MDAG https://github.com/klawson88/MDAG. Объект MDAG можно создавать из коллекции и из файла, но если создавать из файла .txt и осуществлять поиск, то получается слишком долго.
MDAG mdag = new MDAG(new File("file.txt"));
MDAG mdag1 = new MDAG(new ArrayList<>());
Может кто-то подскажет, можно ли сохранить файл со структурой графа и быстро получить к нему доступ или вообще другой способ хранения?
Ответы (1 шт):
но если создавать из файла .txt и осуществлять поиск, то получается слишком долго.
- Значит создавайте не из текстового, а из бинарного (если он в MDAG есть).
- Слишком долго это сколько, на что тратиться время, на чтение файла или на парсинг? Если на чтение, то тут ничего не поделать. Если на парсинг - копайте в сторону вариантов более быстрого парсинга. Если на поиск - добавляйте индексацию.
можно ли сохранить файл со структурой графа и быстро получить к нему доступ
конечно можно, но тут вопрос в том, что такое "быстро" в вашем понимании (см. выше).
или вообще другой способ хранения?
Не изобретать велосипед и использовать локальную БД (например SQLite)