Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Вопрос по Java-программированию

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
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
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kefir



Зарегистрирован: 16.04.2005
Сообщения: 443
Откуда: Пермь

СообщениеДобавлено: Вт Июл 11 2006 13:36    Заголовок сообщения: Ответить с цитатой

UP!
_________________
Самоловских Виталий aka Kefir
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...