Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
regen
Зарегистрирован: 05.07.2006 Сообщения: 2
|
Добавлено: Ср Июл 05 2006 12:48 Заголовок сообщения: Вопрос по Java-программированию |
|
|
Сначала расскажу что необходимо мне сделать.
Необходимо написать вьюер для прайсов одной фирмы. Сама база прайсов хранится в файле который имеет свой формат. В прайсе около 200000 наименований.
Теперь вопрос:
Выдежит ли Java обработку и выдачу на экран (методы Swing) такого большого файла? Не будет ли дико тормозить и кушать море памяти? Ведь Java она сама по себе очень ресурсоёмкая...
Я использую JTable и делаю вывод весь в него. Также в программе будет реализован поиск, а это как я понимаю ещё больше будет кушать памяти чем просто чтение из файла и вывод на экран. |
|
Вернуться к началу |
|
|
satay
Зарегистрирован: 25.03.2005 Сообщения: 77 Откуда: Ukraine
|
Добавлено: Ср Июл 05 2006 21:41 Заголовок сообщения: |
|
|
Выводи даные кусками - зачем помнить N-ю запись при просмотре первого десятка.
Поиск тоже - шариться по файлу вдоль и поперек и выводить то шо нужно. _________________ Satay |
|
Вернуться к началу |
|
|
regen
Зарегистрирован: 05.07.2006 Сообщения: 2
|
Добавлено: Чт Июл 06 2006 09:39 Заголовок сообщения: |
|
|
satay писал(а): | Выводи даные кусками - зачем помнить N-ю запись при просмотре первого десятка.
Поиск тоже - шариться по файлу вдоль и поперек и выводить то шо нужно. |
Согласен что выводить нужно по частям. Но я немного не про то... Для заполнения таблицы необходимо прочесть полностью файлик и добавить все строчки в таблицу. Они там будут хранится все, но выведены лишь постранично. У меня сейчас уже реализован такой способ, но память при этом кушается просто сумашедше: 70Mb на приложение которое просто читает из файла (размер файла примерно 10 Mb. В нём порядка 200000 строчек) - это убийство... Как можно эти цифры (насчёт памяти) уменьшить? Hachtable? Но туда я вроде не вижу возможности писать объекты типа Vector элементами в котором тоже Vector-а. Т.е. по сути двумерные массивы... Из мануала вычитал что Насhtable только "Object a" понимает и возвращает... Если я не прав - поправте меня
Заранее спасибо за ответ |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Пн Июл 10 2006 08:01 Заголовок сообщения: |
|
|
1. Ты не прав. Если помотреть описание класса Vector, как впрочем любого другого класса Java, так вот первым в иерархии стоит класс Object. Это означает что любой объект можно использовать как объект класса Object.
2. Ты не прав. Класс Vector считается устаревшим, и использовать его нерекомендуется, для этого есть классы ArrayList, LinkedList. Которые, кстати, работают быстрее...
3. Ты не прав. В Java 1.5 появились generics types, по сишному шаблоны классов. Т.е. Написав Hashtable<ArrayList> мы получим хэштаблицу которая будет работать с объектами ArrayList и его потомками. Кстати, Hashtable тоже считается устаревшим и использовать его нерекомендуется.
Едем дальше. Насколько я понимаю в каждой строке несколько полей - самое время вспомнить ООП и создать таки класс записи в таблице. Далее все это добро помещается в ArrayList. Ибо данный контейнер хорош для быстрого доступа к произовльному элементу списка.
Дальше тчательно читаем описнаие паттернов model-view-controller и model-delegate. Потом не менее тчательно читаем опсиание класса JTable и JTableModel. Ответы на вопрос написаны там.
Вообще, вывод в таблице больших объемов - большая проблема. Т.к. JTable стремится создать все объекты для отрисовки. Так то трудно представить ситуацию в которой действительно надо выводить 200000 строк, человек этого просто не способен воспринять. Если это прайс, то, думаю пользователям удобнее будет в дереве слева пройтись скажем до мониторов и посмотреть только их.
А что за файл используется? Обязательно ли использовать именно этот файл? Может лучше использовать встраиваемые СУБД на Java, например JDataStore (Borland) или SleepyCat (Berkeley)
http://dev.sleepycat.com/downloads/releasehistorybdbje.html. Там и с поиском проблем не будет. _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Вт Июл 11 2006 13:36 Заголовок сообщения: |
|
|
UP! _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
|
|