- 1
List<KeyValuePair<string, string>> documentList = GetList();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+130
List<KeyValuePair<string, string>> documentList = GetList();
использование списка пар ключ-значение вместо словаря (Dictionary<string, string>)
зачем мне тянуть всю эту бадью, если передавать мне нужно просто список пар?
В общем случае можно начинать сразу с хэш-таблички и не думать.
Если готовой реализации ни того ни другого нет, а размеры маленькие, я бы начал со списка пар.
>Если готовой реализации ни того ни другого нет,
Сишкопроблемы? Во всех нормальных языках есть хотя бы хешмеп.
Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять?
Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
1) могут быть повторяющиеся ключи
2) мне важен порядок этих пар
3) 1 и 2 вместе
Тебе будет приятно, если главы в книге будут перемешаны в хаотичном порядке (аля хешмап) или будут упорядочены по их названию (аля тримап)? :) Ты же получишь такой быстрый доступ к главе по ее названию...
И всегда нужно понимать, что у контейнеров нет класса сложности. Он есть только у операций над ним.
Давай не будем к словам цепляться? Можно догадаться, что речь о сложности поиска и удаления.
Да я разве спорю, самая тупая версия - комбо из хешмапа и списка (жабий LinkedHashMap). Вставляет, удаляет за амортизированное O(1). Ищет за O(1). Обходит шустро и в правильном порядке. В пыхе вон его вообще по дефолту сунули, чтобы народ радовался скорости и правильному порядку :)
> Можно догадаться, что речь о сложности поиска и удаления.
А можно догадаться, что речь о сложности вставки в конец (открыли новый документ), удаления (закрыли документ) и полного скана (список рисуется в окне, на несколько порядков чаще, чем документы открываются и закрываются). О точном применении этой структуры знает только автор. То что он юзает KeyValuePair еще совсем не означает, что эта хуйня юзается как словарь. По мне так автору просто было влом описывать отдельный класс с двумя полями. Давай не будем гадать?
Где-то лучше хешмап. Где-то лучше банальный список. Все зависит от операций и их частоты.
Для удаления надо сначала найти.
>Давай не будем гадать?
Давай. В общем случае linkedhashmap будет горазно лучше.
Ну если на память пофиг - согласен.
Чем меньше известно об условиях, тем более общий нужен алгоритм. А то будет как сортировка в myisam.
> сублинеарной
Что это?
Это цитата из чешского советского мультика про крота?
для настоящего ха у них есть ch