Array | List |
размер не изменяемый задаётся при создании за ним надо специально следить | размер изменяемый |
доступ чуть быстрее | добавлять элемент |
индекс обращение к элементу | удалять элемент |
A[x].B=c если лежат структуры можно изменить поля элемента | linq по признаку перебор всего (foreach) или выборки элементов |
ref параметр функции элемент массива передавать | |
out параметр функции элемент массива передавать | |
fixed можно получить указатель на элемент |
Рубрика: Структуры Данных «Списки»
Просто «список», без уточнений ― это абстрактная упорядоченная коллекция нефиксированного размера, которая реализована может быть как угодно.
Когда термин «список» встречается в описании какого-нибудь алгоритма, если нет уточнений, лучше его именно так абстрактно и понимать.
ВАЖНО
каждый отдельный элемент связного списка занимает отдельное место в памяти
каждый предыдущий элемент хранит ссылку на следующий элемент, который лежит в списке.
Плюсы
является то, что мы можем мгновенно добавлять в конец или в начало списка
связность заключается в том, что каждый предыдущий элемент списка содержит ссылку на следующий элемент в списке
Минусы
Чтобы получить какой-то элемент — нам с самого начала списка надо итерироваться и сравнивать
ОТЛИЧИЕ МАССИВ и СПИСКИ
Массивы используем там, где
- часто обращаемся к каким то данным
- не часто нужно изменять размер массива.
Списки используем там, где
- если редко обращаемся к каким-то данным
- часто его дополняем