Обсуждение:SArray. Класс-расширение массива TArray.

5 (1)
  • Развернуть Обсуждение:SArray. Класс-расширение массива TArray. ( Обсуждение примера  20.02.2019 08:19 )
    5(1)
    Расширение стандартного класса TArray. Реализует всю базовую функциональность, за исключением переопределенного метода sort().
    Документация с примерами в комплекте (папка Documentation, запускать любым современным браузером).

    Преимущества:

    - Имеется возможность заполнять массив при инициализации
    - Имеются дополнительные методы позволяющие легко манипулировать содержимым
    - Имеются методы-цепочки (помечены тегом chain) и методы-билдеры (помечены тегом builder),
    позволяющие выстраивать цепочки вызовов методов без сохранения промежуточного результата.
    - Переопределен метод sort(), для улучшения производительности и чистоты вида функции-компаратора.

    Пример использования:

    import "../mac/extra/utils/SArray.mac";
    import "../mac/extra/utils/Functions.mac";
    import bankinter;

    var arr = SArray(1, 2, 3); // Объявляем и инициализируем массив
    arr.addAll(10, 20, 30); // Добавляем в конец еще 3 элемента
    arr.push(1); // Добавляем еще 1 в конец
    println(arr[0]); // Можем получать значение стандартным способом
    var ind = arr.indexOf(3); // Находим элемент
    arr.remove(ind); // Удаляем элемент под индексом

    // Выстраиваем цепочки
    arr.addAll(0, 1, 25, 10) // Добавляем еще элементы
    .distinct() // Получаем уникальные
    .filter(Predicates.GE(10)) // Фильтруем список, отбираем только элементы больше 10
    .sort() // Сортируем
    .slice(0, 3) // Отбираем три меньших элемента
    .toScreen(); // Выводим на экран
    Посмотреть пример
    >> Ответить