Разлика между C # масив срещу списък

C # Array срещу List е навсякъде, където се срещат абстракцията и въвеждането на хора в изчислителната техника. Масивът е невероятно много обвързан с хардуерната представа за непрекъсната, непрекъсната памет, като всяка част е идентична по размер (въпреки че обикновено тези части са адреси и затова разговарят с референтни лица с не еднакъв размер). Списък може да бъде идея (от аритметика до степен), където частите са подредени и където има (обикновено) старт и край, и по този начин, където индексирането е възможно. Тези 2 идеи се подреждат доста добре. Въпреки това, след като обмисляме списък като абстрактна форма на данни, подход за достъп и манипулиране на данни, ние можем да нарушим редица от тези правила.

Какво е масив?

Масивът може да бъде последователен асортимент от сравними данни, които ще бъдат достъпни според „индекса“. Това е най-добрият стил на система, по време на която времето се запазва на място в съседна памет.

В Array индексът започва от нула, като по този начин за достъп до основната част на масива „numarray“, той трябва да бъде записан като numarray (0).

Масивът може да бъде последователен раздел от паметта, който заема n * размер (тип) байтове, където n е, че дължината на масива и размера (тип) е, че размерът в паметта, необходим за съхраняване на информационния сорт, към който напредвате използване в масива. Това предполага, че ако искате да формирате масив от сто инта и всеки инт заема четири байта, може да се наложи да бъдете принудени да имате неизползвана секция от памет от минимум четиристотин байта (100 * 4). Това допълнително предполага, че масивът е доста евтин за формиране, разгръщане и използване в резултат на парчетата им памет.

Опции за масив: -

  • Информацията се съхранява във вид на непрекъснато разпределение на паметта. всяка половина следва различно просто веднъж в рамките на м / у. няма случайност в разпределението.
  • Те предоставят произволен достъп като arr (0), arr (6) и т.н.
  • Има статично разпределение на паметта. n това може да доведе до загуба на памет.
  • Във всяка клетка от масив има само 1 стил на данни.
  • Вмъкването и изтриването са малко по-продължителни.

Какво е списък?

ArrayList може да представлява асортимент от обекти от същия или различен тип. Размерите на ArrayList са динамично надути или нарязани според нуждите. Той работи като масив, но за разлика от масив в ArrayList нещата са динамично разпределени или разпределени, т.е. ще добавяте, премахвате, индексирате или търсите данни в много асортимент.

Списък, но може да бъде съвършено различна структура. Повечето реализации на списъци са комбинация от възли, които съхраняват: един. - Една цена и, 2. - Един или много указатели, които поддържат възлите свързани помежду им. Това предполага, че просто не искате огромна част от достъпна памет с размер, достатъчно голям, за да пренесе всичките ви данни, защото възлите са разпръснати по вашата памет.

Опции на списъка: -

  • Информацията се съхранява на случаен принцип в компоненти. n всяка половина е свързана към различни чрез указател към следващата клетка (n към предишната клетка само в случай на двоен списък на връзката)
  • Достъпът до тях трябва да бъде последователен благодарение на зависимостта на всяка половина
  • Динамично е разпределено, че m / y се разпределя за всяка клетка, след като процесът поиска заявка за нея. Следователно няма м / у загуба
  • Една клетка е разделена на няколко компонента, всеки от които има информация от различни видове данни. Но последният по същество трябва да бъде показалецът към следваща клетка
  • Вмъкването и изтриването са много по-лесно и бързо. Погледът също е по-лесен.

Сравнение от главата до главата между C # Array и List

По-долу е топ 5 разликата между C # Array срещу List

Ключова разлика между C # масив срещу списък

Както можете да видите, има много разлика между производителността на C # Array срещу List. Нека да разгледаме горното Сравнение между C # Array и Списък по-долу -

  1. Array съхранява данни от същия вид, докато ArrayList съхранява данни от типа на обекта, които могат да бъдат от различни видове.
  2. Размерът на ArrayList нараства динамично, докато размерът на масива остава статичен в цялата програма.
  3. Операцията за вмъкване и изтриване в ArrayList е по-бавна от ArrayList.
  4. Масивите са мощно написани, докато ArrayLists не са силно написани.
  5. Масивите принадлежат към System. Пространство от имена на масив, докато ArrayList принадлежи към System. Пространство с имена на колекции.
  6. След като изберете между Array и ArrayList, изберете идеята за техните опции, които просто трябва да внедрите.

C # масив срещу таблица за сравнение на списъци

По-долу е най-горното сравнение между C # Array срещу List

S.No.

Array

списък

1Масивите са непрекъснати в паметта, което прави изтощително (в смисъл на изпълнение) да се вмъкват части в средата на списъка. Предимството е, че възможността за извършване на произволен достъп.Списъците, от друга страна, са части, които се разгръщат по отношение на паметта, връзка заедно. Това дава възможност за директно вмъкване в списъка, но случаен достъп, но не и други структури от данни не е възможно.
2Масивът може да бъде система, това е да споменем, това е особен подход за организиране на данни в паметта.Списъкът е абстрактен тип данни, тоест това е всяка структура на данни, която поддържа конкретен куп операции.
3Масивът е съвкупност от хомогенни части.Списък е колекция от разнородни елементи.
4Разпределената памет на масива е статична и непрекъсната.Паметната памет на списъка е динамична и случайна.
5Потребителят не трябва да ограничава следите на следващото разпределение на паметта.Потребителят трябва да ограничи проследяването на следващото място, където и да е разпределена памет.

Заключение - C # масив срещу списък

Видяхме сравнение на използването на паметта на C # Array и List List в рамките на езика C #. За бързина обикновено е достойно да харесвате редовни масиви. Печалбата от изпълнението е от решаващо значение.

Списъците се използват много по-често в C #, отколкото са масивите, но има някои случаи, където масивите (или трябва) да бъдат използвани, заедно с това, ако е малко вероятно вашите данни да нарастват значително или ако се справяте със сравнително голямо количество данни които ще трябва да бъдат принудени да бъдат индексирани обикновено.

Позволете ми да ви предложа 2 примерни списъка, които нарушават принципите на масив. В списък с връзки всяка част сочи следващата част, като по този начин аз просто ще поставя заместваща част между 2 съществуващи части или ще отделя една и ще поправя останалите 2 (предишната и следващата); като има предвид, че ще имам достъп до части чрез индекс, ще направя това само като премина от една част към осигуряване и проучване, така че всъщност не е индексиран. Друг пример е, че опашката, където и да завиша единствено върха и ще отнема от самото начало; ако искам да осъществя достъп до части чрез индекс, това е осъществимо, обаче, аз очевидно не малтретирам правилното абстрактно сортиране на данни. Няма значение дали изпълнението ще даде това просто.

Препоръчителен член

Това е ръководство за основните разлики между C # Array срещу List. Тук също обсъждаме C # Array срещу Списък ключови разлики с инфографика и таблица за сравнение. Може да разгледате и следните статии -

  1. Списък с Java или списък с масиви
  2. C # интерфейс срещу абстрактен клас
  3. ASP.NET срещу C #
  4. Java Vector срещу ArrayList