logo

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

АрраиЛист и ЛинкедЛист имплементирају интерфејс листе и одржавају редослед уметања. Обе су несинхронизоване класе.

стринг у јсонобјецт

Међутим, постоје многе разлике између класа АрраиЛист и ЛинкедЛист које су наведене у наставку.

Низ листаЛинкедЛист
1) АрраиЛист интерно користи а динамички низ за складиштење елемената.ЛинкедЛист интерно користи а двоструко повезана листа за складиштење елемената.
2) Манипулација са АрраиЛист је спор јер интерно користи низ. Ако се било који елемент уклони из низа, сви остали елементи се померају у меморији.Манипулација са ЛинкедЛист је брже него АрраиЛист јер користи двоструко повезану листу, тако да није потребно померање бита у меморији.
3) Класа АрраиЛист може делује као листа само зато што имплементира само Листу.ЛинкедЛист класа може делују као листа и ред и зато што имплементира Лист и Декуе интерфејсе.
4) АрраиЛист је боље за чување и приступ података.ЛинкедЛист је боље за манипулацију података.
5) Меморијска локација за елементе АрраиЛист је суседна.Локација за елементе повезане листе није заразна.
6) Генерално, када се АрраиЛист иницијализује, подразумевани капацитет од 10 се додељује АрраиЛист-у.Не постоји случај подразумеваног капацитета у ЛинкедЛисти. У ЛинкедЛист-у, празна листа се креира када се ЛинкедЛист иницијализује.
7) Да будемо прецизни, АрраиЛист је низ променљиве величине.ЛинкедЛист имплементира двоструко повезану листу интерфејса листе.

Пример АрраиЛист и ЛинкедЛист у Јави

Хајде да видимо једноставан пример где користимо и АрраиЛист и ЛинкедЛист.

Назив документа: ТестАрраиЛинкед.јава

 import java.util.*; class TestArrayLinked{ public static void main(String args[]){ List al=new ArrayList();//creating arraylist al.add('Ravi');//adding object in arraylist al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); List al2=new LinkedList();//creating linkedlist al2.add('James');//adding object in linkedlist al2.add('Serena'); al2.add('Swati'); al2.add('Junaid'); System.out.println('arraylist: '+al); System.out.println('linkedlist: '+al2); } } 
Тестирајте одмах

Излаз:

arraylist: [Ravi,Vijay,Ravi,Ajay] linkedlist: [James,Serena,Swati,Junaid] 

Тачке које треба запамтити

Следе неке важне тачке које треба запамтити у вези са АрраиЛист и ЛинкедЛист.

  • Када је стопа додавања или уклањања већа од прочитаних сценарија, онда идите на ЛинкедЛист. С друге стране, када је учесталост сценарија читања већа од стопе додавања или уклањања, тада АрраиЛист има предност над ЛинкедЛист-ом.
  • Пошто се елементи АрраиЛист-а чувају компактније у поређењу са ЛинкедЛист-ом; према томе, АрраиЛист је погоднији за кеш у поређењу са ЛинкедЛист. Дакле, шансе за промашај кеша су мање у АрраиЛист у поређењу са ЛинкедЛист. Генерално, сматра се да је ЛинкедЛист лоша у кеш-локалитету.
  • Меморијски трошкови у ЛинкедЛист-у су већи у поређењу са АрраиЛист-ом. То је зато што у ЛинкедЛист-у имамо две додатне везе (следећу и претходну) јер је потребно да се сачувају адресе претходног и следећег чвора, а ове везе троше додатни простор. Такве везе нису присутне у АрраиЛист-у.