Разлика између АрраиЛиста и ЛинкедЛиста у Јави

Аутор: Laura McKinney
Датум Стварања: 3 Април 2021
Ажурирати Датум: 4 Може 2024
Anonim
9. Programiranje - JAVA - ECLIPSE - Apstraktne klase i Interfejsi
Видео: 9. Programiranje - JAVA - ECLIPSE - Apstraktne klase i Interfejsi

Садржај


АрраиЛист и ЛинкедЛист су Колекција класе, и обе спроводе наставу Листа интерфејс. АрраиЛист класа креира листу која се интерно чува у динамичан низ која расте или се смањује како се елементи додају или бришу из ње. ЛинкедЛист такође ствара листу која се интерно чува у Двоструко Повезани Листа. Обје класе се користе за похрањивање елемената у листу, али главна разлика између класа АрраиЛист и ЛинкедЛист је та што Низ листа дозвољава случајни приступ елементима на листи док делује на засновано на индексу структура података. Са друге стране ЛинкедЛист не дозвољава случајни приступ јер нема индексе за приступ елементима директно, мора да пређе листу да би преузео или приступио елементу са листе.

Разговарајмо о још неким разликама између АрраиЛиста и ЛинкедЛиста уз помоћ упоредног графикона приказаног доле.


  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Закључак

Упоредни графикон

Основе за упоређивањеНиз листаЛинкедЛист
Основни АрраиЛист омогућава случајни приступ елементима на листи.ЛинкедЛист не дозвољава случајни приступ елементима на листи.
Структура податакаУнутрашња структура која се користи за чување елемената је динамички низ.Интерна структура која се користи за складиштење елемената је двоструко везана.
ПродужујеАрраиЛист проширује класу АбстарцтЛист.ЛинкедЛист проширује АбстрацтСекуентиалЛист.
ИмплементацијеАбстрацтЛист реализује интерфејс листе.ЛинкедЛист имплементира Лист, Декуе, Куеуе.
Приступ Приступ елементима на листи је бржи у АрраиЛист-у.Приступ елементима на листи је спорији у ЛинкедЛисту.
МанипулацијаМанипулације елементима на листи су спорије у АрраиЛисту.Манипулација елементима на листи је бржа у ЛинкедЛисту.
ПонашањеАрраилЛист се понаша као Лист док имплементира листу.ЛинкедЛист се понаша као Лист добро као и Куеуе јер имплементира Лист и Куеуе.


Дефиниција АрраиЛист-а

Тхе АбстрацтЛист класа је дефинисана са Збирка оквира. Протеже се АбстарцтЛист и опреме Листа интерфејс. АрраиЛист користи динамички низ тј. низ промјењиве дужине као унутарња структура података за похрањивање елемената у листу. Потреба АрраиЛист-а јавља се јер је низ у Јави фиксне дужине. Тако да не може да расте или се смањи у величини док се елементи додају или бришу из низа. Стога морате унапријед знати величину потребног низа. Али листа низова имплементирана помоћу класе АрраиЛист може расти и смањивати се у величини како се елементи додају или бришу из поља.

Листи низова имплементираних помоћу АрраиЛист може се приступити насумично како АрраиЛист ради на бази индекса. Дакле, знајући индекс можете директно приступити елементу листе. Постоје три конструктора АрраиЛиста:

АрраиЛист () АрраиЛист (Колекција <? Проширује Е> ц) АрраиЛист (инт капацитет)

Тхе први конструктор имплементира празну листу низова. Тхе друго конструктор имплементира списак низова иницијализираних помоћу Колекција ц елементи. Тхе треће конструктор имплементира листу арраи са капацитет наведено у аргументу. Радећи са АрраиЛистом, понекад ће вам требати претварање збирке АрраиЛист у низ. То се може учинити позивом тоАрраи ().

Дефиниција ЛинкедЛист-а

Као АрраиЛист, ЛинкедЛист је такође Колекција користи у класи двоструко повезана листа као интерну структуру података за чување елемената у листи. Класа ЛинкедЛист се проширује АбстрацтСекуентиалЛист и имплементира Листа, Декуе и Ред чекања интерфејси. Повезаној листи имплементираној помоћу ЛинкедЛист-а не може се приступити насумично. Ако желите да преузмете било који елемент са листе, морате га поновити да бисте претражили тај елемент.

Постоје два конструктора у класи ЛинкедЛист.

ЛинкедЛист () ЛинкедЛист (Колекција <? Проширује Е> ц)

Тхе први конструктор креира празну повезану листу. Тхе друго конструктор ствара повезану листу, иницијализирану са елементима Колекција ц.

У ЛинкедЛисту, манипулација списком је лака и брза. То је зато што ако додате или избришете било који елемент на листи, нема потребе за променом елемената као у АрраиЛисту. Али приступ је спорији јер нема индекс за директан приступ елементима.

  1. Програми АрраиЛист листи може се приступити насумично јер АрраиЛист прихваћа индексну структуру података матрице засноване на индексу. С друге стране, листи коју имплементира ЛинкедЛист не може се приступити насумично, јер за преузимање или приступ одређеном елементу на листи морате да пређете списак.
  2. Интерна структура података коју АрраиЛист користи за складиштење елемената листе је а динамички низ која може расти или се смањити како се елементи додају или бришу са листе. Међутим, интерна структура података коју ЛинкедЛист користи за складиштење елемената у листи је двоструко повезана листа.
  3. АрраиЛист проширује АбстрацтЛист класе која је такође и колекционарска класа, док се класа ЛинкедЛист проширује АбстрацтСекуентиалЛист класе која је поново колекционарска класа.
  4. АрраиЛист класе Листа интерфејс док је класа ЛинкедЛист имплементирана Листа, Ред чекања, и Декуе интерфејси.
  5. Приступ елементима са листе имплементиране помоћу АрраиЛист је брже јер има структуру података засновану на индексу. С друге стране, на листи имплементиране од странеЛинкледЛист нема структуре засноване на индексу. Дакле, итератор се примењује преко листе како би се постигао елемент којем се приступа и који омогућава приступ спорији у ЛинкедЛисту.
  6. Манипулација је Манипулација у листи имплементираном помоћу АрраиЛист-а, јер кад год се неки елемент дода или избрише са листе, елементи на листи се премештају да би се прилагодила промена. С друге стране, манипулација је бржа у листи коју имплементира ЛинкедЛист јер не захтева померање елемената у листи додавањем или брисањем елемената са листе.
  7. АрраиЛист делује као листа као што имплементира Лист интерфејс док, ЛинкедЛист делује као листа и ред јер имплементира Лист и Куеуе оба.

Закључак:

Када је често додавање или брисање елемената на листи, ЛинкедЛист мора бити коришћен јер боље делује током манипулације. Ако се на листу примењују честе претраге, АрраиЛист је најбољи избор, јер има бољи рад док приступа елементима са листе.