• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Утилита Для Работы С List

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 947
609
BIT
245
допущения кот. принятые в коде не дают возможности сравнивать подходы к хранению и доступу
и в любом случае - реализация и дает ответ насколько быстрее
нет реализации - нет сравнения
 

Darkhan

Green Team
14.12.2012
99
2
BIT
0
Imike, когда реализую и проверю обязательно отпишусь.
Недавно наткнулся на одно аналогичное (хотя искал примеры реализации подобия Enumeration на LS), правда оно не до конца "умеет" обращаться с объектными значениями, а также нет возможности обращения к элементу по позиции. (забавно, копаю то, что до меня копали))))
 

VladSh

начинающий
Lotus Team
11.12.2009
1 788
157
BIT
92
постоянные обращения к элементам по тэгу заметно уступают по скорости простой итерации forall.
List - это "связанный список", т.е. обращение идёт по хэшкоду, т.е. почти что по ссылке, а это одна из самых быстрых операций. Forall вообще-то можно сделать и массиву, в чём выигрыш перестановки в списке?

Ваши сомнения резонны
Да не, сомнений тут нет. Отсортировать массив с помощью @Sort уже на 10-20-ти элементах быстрее, чем самописная сортировка массива или списка. Об этом тут раньше много было постингов. Потому никто серьёзно классы по работе со списками не рассматривает. Не рассматривает и по той причине, что это напоминает ту историю с микроскопом и гвоздями. История лотусистов в этом примерно одинаковая; на моём примере - первые года полтора, как начал заниматься Лотусом, стал писать кучу библиотек для сортировки списков, массивов и т.п..., чтобы были под рукой привычные мне механизмы из VB и т.п., потом, как стал чуть понимать архитектуру Лотуса, выбросил всё одним махом, - стал для каждого случая использовать соответствующие ему средства + код стал проще и понятнее, в итоге вздохнул свободнее.

Применимость классов для работы со списками в Лотусе:
- при множественном поиске одних и тех же данных, - список с документами, тэги, например, UNID'ы;
- для отчётов с сортировкой (об этом приводил пример выше - реализация "список + массив и сортировка элементов массива" самая быстрая);
- список собственных объектов, содержащий, к примеру, модели поведений, либо данные, доступ к которым нам удобно организовать по определённым ключам-тэгам.
Другие использования списков возможны либо в какой-то, ну очень, специфической задаче (какой?) либо из-за желания написать "мега-универсальный код" (а потом другие будут мучиться его использовать, пока не выбросят).

Возвращаясь в возможностям (1-4...). Список используется для быстрого доступа к элементу по тэгу, и даже задача полного перебора списка очень редка. Как по моему, это желание скрестить ежа и ужа.
Будет ли это работать? Будет. Только добавятся проблемы с производительностью (касательно сортировки и т.п.) и чтением кода из-за его отличия от общепринятого.
Есть ли какая необходимость в этом? Абсолютно никакой, за исключением "универсальности" (в кавычках, которая потом вылазит боком).
Можно ли без этого обойтись? Легко, потому что не нужно.

Добавлено 1:
в тему: Сортировка для List с ответом Yakov'а
Сортировка массива
Сортировка документов коллекции

Добавлено 2:
Тесты вычитки значений из списка и массива
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!