АрраиЛист и ЛинкедЛист имплементирају интерфејс листе и одржавају редослед уметања. Обе су несинхронизоване класе.
стринг у јсонобјецт
Међутим, постоје многе разлике између класа АрраиЛист и ЛинкедЛист које су наведене у наставку.
Низ листа | ЛинкедЛист |
---|---|
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]
Тачке које треба запамтити
Следе неке важне тачке које треба запамтити у вези са АрраиЛист и ЛинкедЛист.
- Када је стопа додавања или уклањања већа од прочитаних сценарија, онда идите на ЛинкедЛист. С друге стране, када је учесталост сценарија читања већа од стопе додавања или уклањања, тада АрраиЛист има предност над ЛинкедЛист-ом.
- Пошто се елементи АрраиЛист-а чувају компактније у поређењу са ЛинкедЛист-ом; према томе, АрраиЛист је погоднији за кеш у поређењу са ЛинкедЛист. Дакле, шансе за промашај кеша су мање у АрраиЛист у поређењу са ЛинкедЛист. Генерално, сматра се да је ЛинкедЛист лоша у кеш-локалитету.
- Меморијски трошкови у ЛинкедЛист-у су већи у поређењу са АрраиЛист-ом. То је зато што у ЛинкедЛист-у имамо две додатне везе (следећу и претходну) јер је потребно да се сачувају адресе претходног и следећег чвора, а ове везе троше додатни простор. Такве везе нису присутне у АрраиЛист-у.