|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 9
|
|||||||||||
Вызов методов с параметрами и возвращение результатов выполнения02.10.2013, 07:27. Показов 4711. Ответов 22
Метки нет (Все метки)
Доброго времени суток. Сейчас делаю тестовое задание на Junior Java Programmer и в целом мне понятно как реализовать его. Но я хочу что бы код был красиво написан, а не быдло код. У меня вопрос: как реализовать метод, что бы он мог вернуть 6 ArrayList'ов? И как передать эти ArrayList'ы другому методу при том что этот метод, опционален, то есть человек может кликнуть по кнопке Экспорт в базу данных, а может и не кликнуть. Где можно сохранить полученные значения от класса sendMoneyPoints, так что бы потом при необходимости записать в базу данных?
Задание заключается в написании программы парсера данных с сайта, сразу скажу сервиса для отдачи данных в XML там нету. GUI программа с возможностью поиска по городам и с возможностью сохранения результатов в sqlite db и csv файле. Почему 6 ArrayList'ов? Программа с сайта получает ~1200 значений которые относятся к 6 категориям. Конечно можно передавать одним массивом и на месте парсить, но это совсем тупо. Так как придется парсить и для вставки в JTable и записи в файл/базу данных. То есть в 3х экшлистенерах. Вообще всю логику можно реализовать в MainGUI классе, но это не вариант. Метод парсинга Кликните здесь для просмотра всего текста
Метод записи в DataBase Кликните здесь для просмотра всего текста
Итого у меня 5 методов, я реализовал и через отдельные классы и через методы в одном классе. Но что бы получить данные из методов мне приходится писать костыли реальные и получается некий быдло-код. Буду благодарен за любые исправления и идеи. Так, как хорошего стиля программирования я не видел, а надо за три дня сделать конфетку.
0
|
|||||||||||
| 02.10.2013, 07:27 | |
|
Ответы с готовыми решениями:
22
возвращение 2 результатов Вызов методов классов друг у друга (вызов метода из другого класса) Возвращение результатов функции в несколько переменных |
| 02.10.2013, 10:20 | ||||||
|
Не по теме: не совсем по теме, но как-то очень самоуверенно так заявлять без проверки
0
|
||||||
|
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
|
|
| 02.10.2013, 11:49 | |
|
Попробуйте почитать о патерне фабрика. Он я думаю весьма отлично поможет вам справится с задачей, та и на роботодателя произведёт благоприятное впечатление что вы знакомы с патернами.
Добавлено через 1 минуту + DAO + женерики
0
|
|
|
352 / 162 / 20
Регистрация: 22.12.2011
Сообщений: 352
|
|
| 02.10.2013, 11:49 | |
|
0
|
|
|
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
|
|
| 02.10.2013, 11:50 | |
|
И забыл о многопоточности
6 разных типов данных... Почему бы в 6-ти потоках не обрабатывать?
0
|
|
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 9
|
|
| 02.10.2013, 14:52 [ТС] | |
|
warloc69, спасибо. Про фабрику почитаю. Но вот насчет потоков я не знаю как распарсить 1200 позиций в потоках, что бы сохранился определенный порядок. Как вы наверное поняли там есть 6 категорий а именно: агент. телефон, адрес, валюта,процентная ставка, дополнительная информация. Я получаю эти данные через jsoup и дело в том что у столбцов нет уникальных id или class'ов. Вот и получается что я имею массив из 1200 элементов, который благодаря чисто логике разбиваю на 6 массивов.
verylazy, это не окончательный код, появляется сообщение чисто что бы я видел. tankomaz, простите, а не подскажете как это реализовать? Хотя бы ключевые слова или ссылку на материал?
0
|
|
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
|||||||
| 02.10.2013, 16:21 | |||||||
0
|
|||||||
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
|||
| 02.10.2013, 16:36 | |||
|
Вообщем господин warloc69 имел ввиду нечто параллельное, что "зашло в документ - одновременно каждый ухватил свое - все дождались последнего и пошли дальше" (наглядный срано-пример на картинке ниже), тогда порядок не потеряете, но будут задействованы 6 разных потоков. Поправьте если не правильно понял ход мыслей докладчика и ТС
1
|
|||
|
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
|
||
| 02.10.2013, 17:07 | ||
|
tankomaz Идеально
![]() Добавлено через 27 минут
0
|
||
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 9
|
|
| 02.10.2013, 17:54 [ТС] | |
|
tankomaz, warloc69, к сожалению я далек от паттернов, недавно только купил книгу по ним. Но так и не нашел времени почитать. Не очень понимаю что делает singleton в данном примере? Вы предлагаете записать все ArrayList'ы в один Container? Если так то зачем вообще ArrayList'ы если все данные и так в одном массиве.
0
|
|
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
|
| 02.10.2013, 17:56 | |
|
justz, у вас 1 контейнер, где будут храниться все ваши данные, вам не придется перебрасывать ссылки List'ов с метода в метод, достаточно будет просто вызвать из нужного места программы объект - произвести в нем изменения (считать, добавить..) и работать дальше. Два контейнера вы не создадите, можете быть уверенны в том, что с любого места программы получите одни и те же данные
0
|
|
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 9
|
|
| 02.10.2013, 18:00 [ТС] | |
|
tankomaz, а тогда как мне обращаться к элементам Container'а? Мне же их надо получать в цикле, что бы вывести в базу и в JTable, как можно решить задучу что бы не делать цикл в каждом месте вызова Container'a?
0
|
|
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
|||||||
| 02.10.2013, 18:14 | |||||||
|
....
1
|
|||||||
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 9
|
||||||
| 02.10.2013, 18:23 [ТС] | ||||||
|
tankomaz, то есть получается что в каждом actionPerformed я должен создавать цикл? Я боюсь будет не более изящным решением чем, то что у меня уже есть. Я в MainGUI создаю такие же ArrayList'ы и когда выполняю метод sendMoneyPoints(), получаю значения через имя_класса.class.имя_ArrayList'а. Получается конструкция вида
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 9
|
|
| 02.10.2013, 18:38 [ТС] | |
|
tankomaz, я понимаю о чем вы говорите. Но по сути все придется решать через цикл в каждом месте где нужно вывести данные, так ведь? То есть цикл один раз написать и в остальных местах забыть о нем не получится? Спасибо
0
|
|
|
78 / 78 / 9
Регистрация: 28.10.2011
Сообщений: 219
|
|
| 02.10.2013, 18:41 | |
|
justz Вы видите весь код, мы видим только не большие кусочки программы исходя из которых мы предлагаем вам возможные варианты. Но переписать за Вас весь код программы вряд ли кто то сможет, темболие не видя всей картины. Хотите кокретней - конкретней код в студию ) например обработчики екшенов )
1
|
|
|
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 9
|
|||||||||||
| 03.10.2013, 02:02 [ТС] | |||||||||||
|
warloc69, tankomaz, спасибо вам. А не могли бы еще подсказать, как сделать что бы getter возвращал ArrayList не как строку, а как массив?
Просто когда я вызывают get'тер в другом классе то мне выдает весь массив, индексы не помогают. SomeClass.java Кликните здесь для просмотра всего текста
Main.java Кликните здесь для просмотра всего текста
Мне выводит сразу 97 элементов массива, хотя должен вывести второй. Если без геттеров и сеттеров с модификатором public, все работает, но так не делается
0
|
|||||||||||
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
|
| 03.10.2013, 02:11 | |
|
Я не вижу абсолютно никакой связи между двумя кусками кода,даже методы разные используете. Вы точно уверены с тек, куда к какому списку обращаетесь?
0
|
|
| 03.10.2013, 02:11 | |
|
Помогаю со студенческими работами здесь
20
Возвращение результатов на запрос MySQL в переменную Реализовать ввод исходных данных, расчет и вывод данных в виде методов класса. В Main только создание объектов и вызов методов Вызов скрипта с параметрами скрипта рекурсивно с своими глобальными переменными каждый вызов Работа с параметрами методов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|