Сложность поиска элемента в Array без известного индекса Array представляет собой линейную коллекцию при известном индексе доступ выполняется за O(1) без индекса нужен последовательный перебор элементы проверяются по…
протоколы транспортного уровня стека TCP/IP TCP — протокол, ориентированный на соединение обеспечивает доставку, правильный порядок и целостность данных выполняет контроль ошибок и повторно передаёт данные при…
Длина массива после записи по индексу 7 Контекст: массивы в JavaScript Начальная длина: 3 (элементы [1,2,3]) Запись по индексу 7 увеличит размер массива Итоговая длина составит 8 (индексы от 0 до 7) Индексы с 3 по 6…
Когда в Go следует применять panic и как это делать правильно? механизм обработки критических ошибок используется при непредвиденных, фатальных ситуациях чаще всего встречается в низкоуровневом коде или при ошибках…
Допустимо ли использовать объект с изменяемыми полями в роли ключа HashMap? Контекст: коллекции, HashMap в Java и аналогичные структуры В течение всего времени хранения в мапе ключ должен сохранять неизменные hashCode…
Нужно ли учитывать различия между структурой и классом при передаче больших данных? Контекст: языки, поддерживающие типы struct и class, например C# и Swift Структуры — value type: при передаче копируются, поэтому…
Наследование и назначение Hashable Протокол Hashable обеспечивает поддержку хеширования ключей в словарях и множествах Он наследуется от протокола Equatable Протокол Equatable реализует оператор ==, который позволяет…
В статическом массиве вставка выполняется за O(n), поскольку элементы приходится копировать В динамическом массиве, например ArrayList, добавление в конец имеет амортизированную сложность O(1) Вставка в середину…
Слайс в Go представляет собой структуру из трёх полей: указателя на массив, длины и ёмкости. Он передаётся как значение: копируется структура слайса, а не весь массив. При таком копировании указатель остаётся тем же,…
Hashtable — синхронизированная реализация словаря Для всего объекта применяются coarse-grained блокировки При конкурентном доступе производительность снижается Его заменил ConcurrentHashMap с более эффективным…
В основе словаря лежит хеш-таблица Hashable вычисляет хеш-код ключа, по которому определяется индекс Equatable позволяет проверять равенство ключей при возникновении коллизий Хеш-код ускоряет поиск, добавление и…
Почему линейный поиск может работать неэффективно алгоритм проверяет элементы один за другим сложность поиска — O(n), поэтому время растёт вместе с объёмом данных при работе с большими массивами он становится очень…