Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
1. сортировка (есть итератор)
2. повторяющиеся ключи (нет проверок на повторы)
следовательно - мапа не выход (даже сортед)
3. нет генериков - вероятно древний ждк
итого: не говнокод а "решение для данного конкретного случаю"
Говнокод, еще какой говнокод!
1) Сортировкой здесь и не пахнет, а если вы имели ввиду упорядоченность данных, то LinkedHashMap эту проблему замечательно решает
2) Повторяющиеся ключи можно было оформлять в виде Map<String, List<Attribute>> (учитывая, что это писалось давно, т.к. сейчас лучше использовать Multimap из Google Collections для таких целей)
3) Отсутсвие generic-ов говорит о том, что это leacy-код, который писался еще под 1.4, а сейчас уже работает на 1.6, но просто не у кого не доходили руки его параметризировать.
А самый главный недостаток в этом коде - это bad performance, потому как получение элемента из HashMap происходит по hashCod-у, и это в разы быстрее, чем линейный перебор элементов по indexOf.
Грамматические ошибки - это норма для нашего проекта 🙂 У нас есть пакет типа xxx.xxx.webserices, в котором лежит куча всякого стаффа, связанного с веб-сервисами, но переименовать его уже нельзя, т.к. на нем завязано много стороннего кода.
2. повторяющиеся ключи (нет проверок на повторы)
следовательно - мапа не выход (даже сортед)
3. нет генериков - вероятно древний ждк
итого: не говнокод а "решение для данного конкретного случаю"
1) Сортировкой здесь и не пахнет, а если вы имели ввиду упорядоченность данных, то LinkedHashMap эту проблему замечательно решает
2) Повторяющиеся ключи можно было оформлять в виде Map<String, List<Attribute>> (учитывая, что это писалось давно, т.к. сейчас лучше использовать Multimap из Google Collections для таких целей)
3) Отсутсвие generic-ов говорит о том, что это leacy-код, который писался еще под 1.4, а сейчас уже работает на 1.6, но просто не у кого не доходили руки его параметризировать.
А самый главный недостаток в этом коде - это bad performance, потому как получение элемента из HashMap происходит по hashCod-у, и это в разы быстрее, чем линейный перебор элементов по indexOf.
говнокод говнокодом, да еще и тупо грамматические ошибки