1. Java / Говнокод #12940

    +73

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    public static String[] getServerUrls(){
        String[] res = new String[getServersMap().size()];
        Collection<Server> servers = getServersMap().values();
        int i = 0;
        for(Iterator<Server> it= servers.iterator();it.hasNext();){
            Server server = it.next();
            res[i] = server.getUrl();
            i = i + 1;
        }
        return res;
    }
        
    public static Server getServer(int index){
        Server server = null;
        String[] serverUrls = getServerUrls();
        String serverUrl = serverUrls[index];
        for(Iterator<String> it = getServersMap().keySet().iterator(); it.hasNext();){
            String alias = it.next();
            if(getServersMap().get(alias).getUrl().equals(serverUrl)){
                server = getServersMap().get(alias);
            }
        }
        return server;
    }

    Поиск элемента по индексу в мапе, ага. И контрольный в голову - getServersMap() возвращает HashMap.

    Запостил: nafania217518, 26 Апреля 2013

    Комментарии (46) RSS

    • здесь еще проверку на Null не хватает. Или мне кажется?
      Ответить
    • Мда.

      Человек пользуется как минимум Java 5, знает про дженерики, но не знает про форыч.

      Не говоря уже о том, что использовать массивы сейчас - моветон. Кроме ну разве что низкоуровневых операций и взаимодействия с legacy API.

      Логику второй функции я вообще плохо понимаю. Они пытаются (ОЧЕНЬ неэффективным методом удаления гланд через анус, но вопрос не в этом) получать по числовому индексу получать строку в HashMap, который по определению не даёт гарантий порядка ключей?

      Это вообще как?

      Кстати, я не удивлюсь, если getServersMap при каждом вызове возвращает новый мэп, так что от такого цикла сборщик мусора плачет.
      Ответить
      • Оно вообще принципиально не правильно. Какой такой индекс? Индекс чего? Этот мап: алиас -> url... какой тут может быть индекс? Тут явное непонимание того, почему в Set<T> нет индекса. Не бывает у множества индексов, такова природа математики)... И что вытащится по индексу в принципе неопределенно... а все эти плясяки с бубном... это все лабуда...
        Ответить
    • показать все, что скрытоЛоллировал с того, сколько телодвижений у жаваебов занимает получить список из итератора. В нормальных языках просто list(sequense)
      Ответить
      • оче толсто
        Ответить
      • Скорее всего в коде итт много лишних двжений. Жаба может короче
        Ответить
      • В Жабе - пожалуйста: new ArrayList<T>(collection)

        Здесь просто автор криворукий.

        Итерация по списку тоже проще: for (T element: list), просто автор об этом не знает.
        Ответить
        • А с массивом как? Или массивы в жабе не нужны?
          Ответить
          • for (T element: array)
            Ответить
            • Я не про итерацию, а про то, как элементы из итератора в массив сохранить.
              Ответить
              • итератор - штука недерминированная, у нее непонятно, сколько элементов, пока не кончились. а массиву обязательна размерность. у них вообще разные судьбы.
                Ответить
          • > А с массивом как?
            Ты не поверишь, но: Arrays.asList(array)
            Ответить
            • Блин, из foreach в массив.
              Ответить
              • Массив же имеет иммутабельную длину, а итератор не может рассказать сколько в нем элементов. Поэтому только через промежуточную коллекцию, набив их туда циклом.
                Ответить
                • И то правда.

                  Все равно, ответтьте на вопрос: массивы в яве нужны?
                  Ответить
                  • Да. Они даже в хаскепе нужны
                    Ответить
                    • Но среднестатистическом коде простые голые массивы не нужны. Используй ArrayList.
                      Ответить
                  • > массивы в яве нужны?
                    Нужны конечно. Просто в коде не требующем высокой производительности, экономии памяти или совместимости со старыми либами лишний раз их юзать не стоит.
                    Ответить
                    • То есть, практически ненужны.
                      Ответить
                      • пока из опыта по жабе - одна прочтенная книга и приложения уровня хелловорлд, то нет разницы.
                        в реальных задачах обязательно понимать, где какой тип данных нужен. бывает так: сменишь класс с вектора на арраулист, и начинает просто летать.
                        Ответить
      • Ахаха, пидорасы, заминусовали :D
        Ответить
        • > Блин, из foreach в массив.
          > массивы в яве нужны?
          > Низкоуровневое дрочерство, понятно.

          Боже, какой же ты долбоёб.
          facepalm.gif
          Ответить
    • Тысичная страница, товарищи!
      Ответить
    • Кстати! Некоторые жаваебы ПРИНЦИПИАЛЬНО не добавляют поддержку foreach, появившегося в 2004 году. Спешите, пока цирк не уехал!

      http://forum.vingrad.ru/forum/topic-348566.html
      Ответить
      • потому что строго следуют спецификации w3c. кстати, dom api еще та неудобная штука, именно из-за нее в js есть всякие эти jquery
        Ответить
      • >Кстати!
        К какой же это стати? Нахуй ты везде лезешь со своим уг?
        Ох лол, я теперь понял. Опыт и все знания о жабе данного поциента ограничиваются этой ссылкой.

        Кстати в прошлой дискуссии, где приводился тот линк, агрессивный ушлёпок настойчиво требовал чтобы с ним спорили:
        >>Пи, что стих? Бензин закончился?
        Но при виде же конкретных примеров и аргументов, пустил дрысню по штанине и тихо слился.
        http://govnokod.ru/12317#comment174743
        Ответить
        • Блядь, да зашей ты уже себе пукан, что ты им в каждом треде сверкаешь, сучечка. Это с того кстати, что ява и так - сверхмногословное говно и это еще усугубляется такими вот личностями, для которых фичи 2004 года нинужны. И это, насколько я знаю, стандартная библиотека.

          Не слился, ссылка пропала. Когда-нибудь отвечу.
          Ответить
          • Выучил мантру: ява нинужна, форич, 2004 год. А больше ничего не знаешь, потому что тупой как ишак.
            И не надо лезть на этот сайт со своим "авторитетным знанием джавы", это выглядит убого, вызывая только фейспалм и тошноту у посетителей.
            Сиди на своей хабропараше, и тихо посасывай хуй балмера. Там таких кадров ценят.

            >Не слился, ссылка пропала.
            >Когда-нибудь отвечу.
            Ха-ха-ха. Ну ты же сам настойчиво призывал меня в тред для спора.
            Вот так слив. «ссылка пропала» Более жалких отмазок я тут не видал более 2-х лет.
            Ответить
            • >Выучил мантру: ява нинужна, форич, 2004 год. А больше ничего не знаешь, потому что тупой как ишак.
              Уж припекло так припекло. А нахуя она мне нужна, такая убогая? Что в ней такого, что это компенсирует? Хайлоадъ? Мне не нужен.

              Ах да, вспомнил вторую мантру: ФОЛДИНГ.

              >и тихо посасывай хуй балмера.
              Сгущенка в очке не давит, питушок?

              >Вот так слив. «ссылка пропала» Более жалких отмазок я тут не видал более 2-х лет.
              Если честно, ты там под конец такую хуйню нести стал, что я уже задумался, стоит ли на это вообще отвечать.
              Ответить
              • Что-за ФОЛДИНГ? И что с ним не так в Яве? Имелась ввиду левая и правая свертка? Так их вроде в Яве и нет. Но я не считаю это минусом языка.
                Ответить
                • Лиспоеб в треде. Нет, имелось в виду, что IDE скрывает нинужный код, вроде обьявления анонимного класса, вместо того, чтобы сделать замыкания. Ну не пиздец? Все это, конечно, надо самому настраивать в IDE, если оно вообще это позволяет.

                  http://lambda4jdt.googlecode.com/files/screen2b.gif
                  Ответить
                  • > Лиспоеб в треде.
                    Не гони напраслину на моё честное имя. Свертка есть во многих нормальных языках. И даже в некоторых ненормальных, например в крестах.

                    >screen2b
                    Красиво. Я даже это java-ide зауважал. Вопреки обстоятельствам исправляет ситуацию. Как среда называется? Какой-то плагин? Лучше чем макросы, имхо. Однажды в язык тоже внесут. Терпение. Пока пораскладывай Косынку.
                    Ответить
                    • И где она реально используется, кроме как в функциональном гавне.

                      >Красиво.
                      Вместо замыканий и лямбд? Это называется красиво?
                      Ответить
              • >Если честно, ты там под конец такую хуйню нести стал
                Привел конкретный пример c for-each.
                >что я уже не знал что отвечать.
                fixed
                Ответить
      • В прошлую среду стали известны новые подробности о критической ошибке найденной в коде Java, более известной как "проблема for-each". Напомним что обнаружена она была российским школьником и немедленно вызвала фурор в компьютерном мире.
        Ситуация усугубляется тем, что за 10 лет, прошедшие с выпуска версии 1.5 уязвимыми оказались практически все компьютеры использующие данную технологию. В сообществе Java-программистов нарастает паника, некоторые кончают жизнь самоубийством.
        Эксперты прогнозируют скорое банкротство и крах таких корпораций как Oracle и Google, а их акции уже потеряли в цене 25 и 19 процентов соответственно.
        ЧИТАТЬ ДАЛЬШЕ -->

        Новости по теме:
        Выпущен патч openJDK для Bolgenos, закрывающий обнаруженную проблему
        Антивирус Бабушкина сможет защитить от "ошибки for-each" (эксклюзивное интервью)
        Пользователи массово избавляются от устройств с поддержкой Java
        Ответить

    Добавить комментарий