Что работает быстрее и что разумнее? (словарь или...)
в общем к примеру у меня будет класс Client с полем id в котором будет храниться личный код клиента, далее у меня будет список из этих клиентов. Я буду обращаться к клиентам по их личному коду. Так вот, что будет быстрее и разумнее искать через цикл for, проверяя Client.id=код или же держать еще словарь в котором будет код: номер в списке, получать из него номер и обращаться к списку?
Конечно же поиск по словарю O(1) будет быстрее, чем линейный поиск O(n). Вот только в этом случае по вашей схеме вам придется держать в памяти сразу и список, и словарь, а также синхронизировать их во время добавления/удаления элементов. На мой взгляд это очень плохая практика программирования.
Я бы сделал что-то из этого:
1) Изначально использовать только словарь (id : Client) вместо списка
2) Если ваш список клиентов отсортирован по id, можно сделать бинарный поиск O(log n)
3) Почему бы для хранения/поиска данных просто не использовать БД?