я должен сохранить, постоянно (или, по крайней мере, до следующего исполнения), таблицу, как:Какую структуру данных я должен использовать? HashTable, Array ...?
| ID | Color |
|------|---------|
| 0001 | Red |
| 0002 | Blue |
| 0003 | Green |
Я думал, чтобы сохранить его наружно в виде файла XML, но я не знаю, какая структура данных я должен использовать для доступа к этим данным внутренне, потому что я хочу какой-то итеративный элемент, но быстро и легко получить доступ и сохранить во внешний XML-файл, и если я хочу добавить новое отношение, то идентификатор должен быть 0004
.
Я имею в виду, следует ли использовать Hashtable, DataTable, Array ...? Должен ли я изменить способ экспорта этих отношений или лучший (простой и быстрый) способ экспортировать их в XML-файл?
Обратите внимание, что тип данных, который вы используете для хранения коллекции элементов, зависит от ваших требований времени выполнения (по крайней мере, производительности, использования памяти и шаблона использования - скорости вставки/удаления/поиска). Вам не нужно сохранять такую же структуру, когда вы делаете данные постоянными (например, хэш-таблица может просто быть сохранена навалом наборе узлов). Требования к хранению - это еще одна история с разными вариантами: нужно ли вручную редактировать этот файл? Использовать его в качестве формата обмена? Это должно быть особенно мало? Вам нужно обращаться с версиями? –
Как насчет списка? Идентификатор может быть только индексом списка. Слишком мало информации о том, что вам действительно нужно делать с этими данными, что означает идентификатор, как вы к нему обращаетесь и т. Д. Однако, скорее всего, это мнение основано. –
ID вещь _may_ будет немного более сложной, потому что вы не можете просто использовать количество элементов в коллекции, чтобы узнать следующий идентификатор (если вы не запретили удаление). Как получить следующий идентификатор может быть так же просто, как запрос на поиск в настоящее время одного (если параллелизм и скорость/размер коллекции не являются проблемой), в противном случае вам нужно будет хранить _next ID_ (или последний ...) где-нибудь (в конечном итоге сохраняя поточно-безопасный) –