Java Collection Lib или пользовательский класс? - PullRequest
0 голосов
/ 09 ноября 2011

Я работаю над картографической утилитой, которая требует ввода небольшого объема данных в приложение в формате CSV. Эти CSV-файлы могут содержать более 100000 записей, каждая из которых содержит около 50 элементов. Мне может понадобиться открыть несколько таких файлов одновременно. Данные нуждаются в двойной точности, но не для каждого элемента в записи. Эти элементы могут быть преобразованы в int или вызваны toString.

Мой вопрос таков: моей первой мыслью было создание ArrayList типа double []. Моя вторая мысль заключалась в создании пользовательского объекта данных (ArrayList из MyDataClass) для хранения этих данных в нужных мне формах. Это позволило бы мне создать класс с примерно 45-50 переменными экземпляра. Я никогда ничего не делал в этом масштабе и мог бы использовать небольшое руководство по наилучшей практике для такой задачи!

1 Ответ

0 голосов
/ 09 ноября 2011

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

Если предположить, что у вас открыто 10 файлов, каждый с 100000 * 50 удваивается, что составляет около 380 МБ. Вы должны добавить память для каждого массива значений типа double и ArrayLists. Такое количество памяти может быть слишком много или может быть хорошо. Все зависит от памяти, которую вы имеете в вашей JVM. Если вы не можете хранить все в памяти, подумайте о необходимости чтения файлов или сохраните данные в базе данных.

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