![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Wyatt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2010 Репутация: нет Всего: нет |
Привет. Я новичок в java, изучаю самостоятельно, и мне не кому меня проверить, то что я пишу. Возможно здесь найдется опытный джавист с которым бы я смог редко советоваться ? я не буду доставать, мне только нужно чтобы вы только натолкнули меня на мои ошибки, это у вас не будет занимать больше 5 минут. Если никто не хочет за безвозмездно - то можно договорится о цене за которую вы можете уделить мне раз в месяц 5 - 10 минут.
П.С. Если не туда написал, прошу перенести в нужную ветку . |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Если у тебя какие-то вопросы конкретные есть, то задавай, не стесняйся. Тут за помощь денег не берут.
|
|||
|
||||
| Wyatt |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2010 Репутация: нет Всего: нет |
Ну вот такой вопрос:
Нужно перевернуть List делаю двумя методами: вот первый
вот второй
какой из них более предпочтительней или эфективней? Это сообщение отредактировал(а) Wyatt - 18.6.2010, 21:34 |
||||
|
|||||
| Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
По разным оценкам, от 40% до 60% труда программиста - это отладка кода. Поэтому искать в коде ошибки - это такая же обязанность как и писать сам код. Тем более когда он - собственный. Найдете сами ошибку - узнаете гораздо больше даже когда писали, не говоря о том что бы за Вас кто-то ее искал.
Наталкивать на ошибки можно когда неделю усердно искал и не нашел. А так - учитесь программировать = думать-писать-исправлять И пользоваться интернетом и документацией - при поиске ошибок первейшее дело(потому что подобные уже кто-то совершал, и можно найти косвенный ответ).
Меня, если честно поражает что молодое поколение не умеет пользоваться гуглом... Это вопрос первого курса. надцать ответов в интернете. А часто в самих книгах сразу рассказано. Загляните в исходный код Collections.reverse(list); да и все. Чего спрашивать то? Не знаете как - погуглите на предмет как установить JDK под Eclipse/NetBeans чтобы показывал исходный код стандартной библиотеки. Отвечено и на этом форуме не раз. Если же интересует глобально, то прочтите Н. Вирт АЛГОРИТМЫ + СТРУКТУРЫ ДАННЫХ = ПРОГРАММЫ сами узнаете и сможете другим рассказывать. Это сообщение отредактировал(а) Skynin - 18.6.2010, 21:40 |
|||
|
||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Интересный вопрос, я написал вот так, и считаю, что это самый эффективный способ, да и ты туда-же шёл со своим алгоритмом:
Это сообщение отредактировал(а) dobrolub - 18.6.2010, 22:58 |
|||
|
||||
| Wyatt |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2010 Репутация: нет Всего: нет |
а можно еще вот так:
|
||||||
|
|||||||
| Skynin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
Так же Collections.reverse
где в swap
Факты и заблуждения профессионального программирования Роберт Гласс почитать Заблуждение 10 Людей можно научить программированию, показывая им, как писать программы. Обсуждение Как вы учились программировать? Готов спорить, что это были какие-то занятия в учебном классе, на которых преподаватель рассказывал о правилах языка программирования, после чего предоставлял слушателям писать некий программный код, как им заблагорассудится, А если вы учились программировать более чем на одном языке, то наверняка во всех случаях это было одно и то же. Вы читали о языке программирования, или вам рассказывали о нем, а потом предоставляли полную свободу писать на этом языке все что угодно. И такой способ обучения программированию настолько вошел в норму, что вы, может быть, и не видите в нем ничего плохого, И напрасно. Он отнимает массу времени. Дело вот в чем: изучая любой язык, мы в первую очередь учимся читать. Вы берете "Войну и мир", или "Дика и Джейн", или какое-то другое произведение и читаете. И вы не думаете, что можно написать "Дика и Джейн" или "Войну и мир", не изучив как можно больше примеров творчества умелых писателей. (Поверьте мне, написание "Дика и Джейн" тоже требует мастерства! Надо писать словами, входящими в словарь, соответствующий возрасту и знаниям читателей.) P.S. В предложенной книге Вирта и рассказывается об алгоритмах, и почему один эффективней другого. Можно доходить до этого самому, а можно прочитать, понять, и научиться - анализировать. Не обязательно с строгой математикой, а эмпирически. Но можно конечно и гадать, и задавать вопросы на форуме, вместо элементарного: Заполните список на 100 000 элементов, и реверсируйте с замером времени. Правда опять придется почитать - как правильно писать такие тесты, как учитывать "разогрев" и оптимизации JVM Учитесь учиться Это сообщение отредактировал(а) Skynin - 19.6.2010, 18:58 |
||||||
|
|||||||
| sergioK |
|
||||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 207 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
[QUOTE=Skynin,19.6.2010, 18:48]
Это сообщение отредактировал(а) sergioK - 22.6.2010, 17:16 |
||||
|
|||||
| Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
это никому ни нужные понты -> Copyright 2006 Sun Microsystems
Не подумал, просто скопипастил. Действительно чего только начинающего не путает на свете.... Может пусть тогда и не начинает, если не знает о связи сдвига битов и операций умножения/деления на 2? Может начинающий еще и не знает вообще о битах и байтах, а я тут понимаешь жизнь ему уже поломал архисложным кодом. |
|||
|
||||
| sergioK |
|
||||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 207 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
А сколько раз за последний год вам приходилось этим реально пользоваться , ? т,е так что обычное деление на два не проходило , Это сообщение отредактировал(а) sergioK - 22.6.2010, 18:21 |
||||
|
|||||
| Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
Ну, трудно посчитать, не задумывался, раз 20 наверное. У меня просто сишное воспитание, я на автомате ставлю сдвиг вместо умножения/деления. Но насчет жалости к начинающим, то просто не люблю этих нюней. Если начинающий не сможет догадаться что это такое деление на 2, то что же он будет с "великими тайнами" singlton'а потом делать? Оно конечно, в мое время в институт поступать ездили сами в другой город, а сейчас мама даже документы сама несет в приемную в том же городе, бо дитятко в стрессе будет, и не поймет, куды нести. То есть меня можно только забанить, а никак такими вещами не посовестить или разжалобить. Тем более когда у меня никакого злого умысла не было, и не считаю начинающего программиста за полного кретина, которому еще и инкремент с декрементом разворачивать нужно, потому что оно бедненькое не осилило книжку толстую по синтаксису языка. Вы похоже да, считаете что начинающий программист это как раз такой. дело хозяйское. Это сообщение отредактировал(а) Skynin - 22.6.2010, 18:46 |
|||
|
||||
| Temdegon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Че-то у сана стандарты форматирования гуляют.
Прям в одном файле то выделяют "=" пробелами, то нет.
Очень стало интересно, ощутима ли разница между mid=size>>1 и mid=siz/2 ? Никогда не понимал, зачем так писать. Т.е. понятно, что быстрее, но.... Может тогда вручную циклы будем разворачивать, прекалькуляцию выражений делать и т.п.?
Звучит пугающе... В данном случае оно выглядит нормально и понятно. Но представить себе три вложенных цикла, с парой ифов и несколькими формулами внутри, истыканных этими >> << мне страшно. Я б грязно выругался, увидев такое =) Не лучше ли использовать нормальные компиляторы и задавать им опции оптимизации, чтоб они не только /2 заменили на более быстрые операции, но и делали еще сотни других кошерных оптимизаций? ИМХО gcc с этим отлично справляется. В случае с джава - вроде давно уже придумали обфускаторы, которые оптимизируют код. Сорри за грязный оффтоп и срач |
||||
|
|||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Я в одной книжке прочитал вот такое интересное изречение, относительно не следования простым стандартам кодирования:
Поскольку на его чтение и понимание уходит значительно больше времени. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |