|
|
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Всем Доброго вечера! Спарсиваю xml в коллекцию и потом в рамках одной транзакции загоняю всё в базу данных . Вопрос как правильно сделать коллекцию для моего случая? Данные имеют вид: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. Может мне создать отдельный класс и коллекцию обьектов этого класса например так: Код: java 1. 2. 3. 4. 5. 6. 7. но тогда как правильно заполнить в моём цикле эту коллецию TT ? Код: java 1. 2. 3. и как потом её считать в цикле? Код: java 1. 2. 3. Или лучше использовать ArrayList или HashTable или ... ? Подскажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 20:09:42 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
может лучше public class TT { Map Item = new HashMap(); //и сюда уже класть ваши айтемы и по ключу(АБС) потом доставать или через итератор } //и потом: private List<TT> TT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 20:36:28 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Ничего не понял, что у вас не получается. Начинаете парсить, создаете объект тт, создаете пустой list, пока есть айтемы, вычитываете их по одному, создаете объект айтем, добавляете в list. Собственно и все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 20:37:17 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
А обязательно объекты делать? Можно через SAX или Digester написал классы, которые будут формировать запрос и отправлять. А что за база? Для некоторых есть нормальные тулзы XML импорта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 20:41:48 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Может, тут Java не нужна? Преобразовываем XML в SQL и выполняем консольной тулзой от сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 21:02:14 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
регвырами разобрать. Будет быстро и просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 21:09:07 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Мне надо понять как в цикле while заполнять свойства (a, b, c) для каждого элемента моей колекции tt ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Ну а считывать я буду так Код: java 1. 2. 3. 4. 5. Подскажите как заполнить коллекцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 21:17:10 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Leonidv регвырами разобрать. Будет быстро и просто. У вас есть проблема. Вы решили что регулярное выражение лучше всего подходит для её разрешения. Теперь у вас две проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 21:39:13 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Ты точно не стебешься? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 21:39:39 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Такой говнокод не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 21:42:03 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
сорри, вот этот говнокод более правильный Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 21:43:10 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
забыл ник, Только ещё я забыл инициализировать колекцию: Код: java 1. БОЛЬШОЕ СПАСИБО, то, что и искал !!! Относительно SAX, регулярных выражений, ...: я сначала использовал библиотеку SimpleXML (т.е. SAX), но спросив совета перешёл на VTD-XML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 22:52:28 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Android, XML, база данных. Жесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2012, 22:58:41 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Я конечно может чего и не понимаю, но зачем нужны коллекции для redskyСпарсиваю xml и потом в рамках одной транзакции загоняю всё в базу данных. Я делал ту же самую задачу для андроида так, как писали старшие товарищи выше через SAX парсер. Никаких коллекций вам не понадобиться, транзакция то одна, что мешает извлеченные данные сразу вставлять в БД? Экономия памяти+ скорость выполнения. ЗЫ. IMHO быстрее sax парсера ничего нет.Парсил 30мб файл на андроиде с записью в БД. Действие заняло ~2 мин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 12:42:51 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
А просветите, пожалуйста, что за злобные буратины шлют XML на мобилку? Тормозной формат неприспособленый ни для быстрого чтения, ни для быстрой передачи. Откуда он на мобиле берется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 12:48:57 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
TrogloditЯ конечно может чего и не понимаю, но зачем нужны коллекции для redskyСпарсиваю xml и потом в рамках одной транзакции загоняю всё в базу данных. Я делал ту же самую задачу для андроида так, как писали старшие товарищи выше через SAX парсер. Никаких коллекций вам не понадобиться, транзакция то одна, что мешает извлеченные данные сразу вставлять в БД? Экономия памяти+ скорость выполнения. ЗЫ. IMHO быстрее sax парсера ничего нет.Парсил 30мб файл на андроиде с записью в БД. Действие заняло ~2 мин.1. Коллекция нужна была мне для разделения спарсивания и записи в БД. Мне надо было увидеть время выполнения и того и другого. 2. Время после выделения в коллекцию как было 1,5-2 сек. так и осталось (на парсинг + запись в БД) 3. Относительно скорости: - из описания SimpleXML "Developing XML configuration and communication systems can be done much quicker than through the use of XML frameworks such as DOM, SAX, and even other frameworks such as Digester and XStream." - сравнительные тесты скорости: тут - и в моём случае прирост в 4 раза 4. У меня файл размером в 700Kb., т.е. в памяти он занимал приблизительно столько же и ради прироста скорости и поменял парсер. Если бы файл был 30 метров, конечно бы отказался от этой затеи. BlazkowiczА просветите, пожалуйста, что за злобные буратины шлют XML на мобилку? Тормозной формат неприспособленый ни для быстрого чтения, ни для быстрой передачи. Откуда он на мобиле берется? Бывают вот такие злобные разработчики )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 13:47:49 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
redsky, Можно использовать jaxb входит в состав jdk начиная с 5 - автоматически преобразует xml в объект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 14:05:47 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
OOsalivanredsky, Можно использовать jaxb входит в состав jdk начиная с 5 - автоматически преобразует xml в объект ТС упустил такую маааленькую деталь, как android . Хорошо хоть не j2me ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 14:09:26 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
OOsalivanredsky, Можно использовать jaxb входит в состав jdk начиная с 5 - автоматически преобразует xml в объект С http://stackoverflow.com "... JAXB isn't included in android by default and the library will cost you 9(!) MB of your apk. Try SimpleXML instead. It has similiar abilities and much more lightweight." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 14:09:29 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczрА просветите, пожалуйста, что за злобные буратины шлют XML на мобилку? А что плохого в стандарте w3c? 2redsky А что мешает воспользоваться тогда теплым ламповым stax от android? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 20:31:00 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczLeonidv регвырами разобрать. Будет быстро и просто. У вас есть проблема. Вы решили что регулярное выражение лучше всего подходит для её разрешения. Теперь у вас две проблемы. Цитата известна. Поясните, почему использование xml-парсера для решения данной конкретной задачи лучше, чем регулярные выражения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 21:41:41 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
TrogloditА что плохого в стандарте w3c? Он ресурсоёмкий и избыточный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 22:21:52 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОн ресурсоёмкий и избыточный. А какая разумная альтернатива для таких задач? Собственные велосипеды писать? XML устоявшийся стандарт, в котором можно описать любую структуру, проверить корректность данных и плюс наличие множества библиотек по обработке xml заставляет меня остановить свой выбор именно на нем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 18:30:09 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
TrogloditА какая разумная альтернатива для таких задач? Собственные велосипеды писать? XML устоявшийся стандарт, в котором можно описать любую структуру, проверить корректность данных и плюс наличие множества библиотек по обработке xml заставляет меня остановить свой выбор именно на нем. http://www.4feets.com/2009/08/serializing-data-json-vs-protocol-buffers/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 18:34:33 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
redsky- и в моём случае прирост в 4 раза 4. У меня файл размером в 700Kb., т.е. в памяти он занимал приблизительно столько же и ради прироста скорости и поменял парсер. Если бы файл был 30 метров, конечно бы отказался от этой затеи. В данном примере вы не использовали sax,соответственно сравнение неуместно. То , что DOM тормозной и прожорливый-это не секрет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 18:37:36 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
LeonidvПоясните, почему использование xml-парсера для решения данной конкретной задачи лучше, чем регулярные выражения? Вы можете написать регулярное выражение, которое разберет XML в один проход? Хотя бы в черновом варианте свою идею продемонстрируйте. Закрывающие теги чем определять? А если XML без переноса строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 18:38:15 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
для андроида рекомендуемый формат обмена данными json. а дальше как хотите. если очень хочется, можно и soap/xml гонять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 18:46:41 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
з.ы. про Protocol Buffers не знал, надо пощупать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 18:53:52 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Trogloditredsky- и в моём случае прирост в 4 раза 4. У меня файл размером в 700Kb., т.е. в памяти он занимал приблизительно столько же и ради прироста скорости и поменял парсер. Если бы файл был 30 метров, конечно бы отказался от этой затеи. В данном примере вы не использовали sax,соответственно сравнение неуместно. То , что DOM тормозной и прожорливый-это не секрет.Как я понял Simple XML использует подход SAXa. DOM я не использовал. VTD - не DOM, хоть память и юзает. А потратить 600Kb памяти ради такого прироста стоят того. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 18:56:36 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВы можете написать регулярное выражение, которое разберет XML в один проход? Хотя бы в черновом варианте свою идею продемонстрируйте. Закрывающие теги чем определять? А если XML без переноса строк? Зачем в этой задаче определять закрывающие тэги? Я бы относился к файлу просто как к файлу заданной структуры. Код: java 1. И вперед по тексту find делать. С правильными флагами переносы строк и прочее будут несущественными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 18:59:12 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
2Blazkowicz Я согласен, что JSON более экономичен в размере, но если запаковать в архив, эта разница нивелируется. Вот, что я нашел у IBM Хотя разбор JSON гораздо проще с точки зрения программирования, это дается не даром. Добавляется память, в которую до начала обработки считывается весь поток данных и где затем хранятся все данные. Подход же SAX XML использует только те данные, который действительно представляют интерес. Это не важно, если памяти для разбора объекта JSON много; в этом случае данный подход может быть предпочтительным для многих приложений, особенно если не нужно работать с DOM. Т.е. держать весь объем в памяти (особенно если он несколько десятков мегабайт) IMHO недопустимо, если ресурсы ограничены, плюс xml-тип присутствует во многих СУБД, что позволяет обратывать данные нативно в ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 19:18:05 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Troglodit у чувака андроид. откуда возьмутся объекты подлежащие сериализации размером в десятки!!! мегабайт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 19:35:51 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Leonidv Код: java 1. И кто гарантирует порядок атрибутов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 20:44:17 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
TrogloditЯ согласен, что JSON более экономичен в размере, но если запаковать в архив, эта разница нивелируется. Не только в размере, но и в нагрузке при сериализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 20:45:14 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczLeonidv Код: java 1. И кто гарантирует порядок атрибутов? Тот кто формирует файл (я так понял, что это автор и есть)? Можно решать абстрактные задачи, а можно конкретные. Если порядок атрибутов не гарантируется, то справимся 2 другими регвырами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 20:59:39 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Двумя не справимся. Тремя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 21:00:03 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
И тремя тоже. Хотя можно и двумя тогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 21:00:34 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
LeonidvBlazkowiczпропущено... И кто гарантирует порядок атрибутов? Тот кто формирует файл (я так понял, что это автор и есть)? Можно решать абстрактные задачи, а можно конкретные. Если порядок атрибутов не гарантируется, то справимся 2 другими регвырами.Нет. Не я. BlazkowiczTrogloditЯ согласен, что JSON более экономичен в размере, но если запаковать в архив, эта разница нивелируется. Не только в размере, но и в нагрузке при сериализации. В заключении статьи на сайте IBM сказано: "По сравнению с подходом JSON, подход XML несколько быстрее и менее прожорлив на память – но за счет повышенной сложности." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 21:05:36 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
redsky"По сравнению с подходом JSON, подход XML несколько быстрее и менее прожорлив на память – но за счет повышенной сложности." Как и в случае с XML, парсеры для JSON бывают разные http://code.google.com/p/json-benchmark/wiki/AndroidBenchmarks Автор статьи сам пишет что парсер не удачный, всё стразу считывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 21:28:27 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
chpashaу чувака андроид. откуда возьмутся объекты подлежащие сериализации размером в десятки!!! мегабайт? а никто про сериализацию в несколько мегабайт не говорил. ТС хотел все данные из XML поместить в БД. При последовательном разборе xml объем файла скорость обработки практически линейная. ЗЫ. А что несколько десятков мегабайт -это много? 21 век на дворе. 2Blazkowicz я вполне допускаю,что обработка сферического JSON быстрее cферического XML , но если JSON в обязаловку ВЕСЬ храниться в памяти, то я буду юзать xml и не бояться наткнуться на out of memory.Повторяю самый главный плюс xml валидация документа. Используя схемы все просто и понятно, опять же не надо городить велосипед по проверке корректности данных.Небольшой плюс -это подпись данных, не знаю может в JSON тоже есть,ну и XPath добавляет свои плюшки. Для обработки пары килобайт действительно XML громоздкий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 22:11:15 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Trogloditно если JSON в обязаловку ВЕСЬ храниться в памяти При чем здесь JSON??? Там парсер кривой использовался. Как и с вариантом XML вместо родного парсера, берется быстрый и проблема решается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 22:13:28 |
|
||
|
Как правильно создать и считать коллекцию?
|
|||
|---|---|---|---|
|
#18+
Trogloditа никто про сериализацию в несколько мегабайт не говорил неужели? TrogloditТ.е. держать весь объем в памяти (особенно если он несколько десятков мегабайт) TrogloditЗЫ. А что несколько десятков мегабайт -это много? 21 век на дворе. товарищ, вы ключевое слово андроид принципиально в игнор поставили. в ваших краях уже безлимитный мобильный интернет? в наших пока 200-500мб, а потом торможение до gprs. так что 21 век еще немного подождет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2012, 22:20:04 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2132474]: |
0ms |
get settings: |
12ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
48ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
106ms |
get tp. blocked users: |
3ms |
| others: | 332ms |
| total: | 556ms |

| 0 / 0 |
