Հիմնական տարբերություն – ArrayList ընդդեմ LinkedList
Հավաքածուները օգտակար են տվյալների պահպանման համար: Սովորական զանգվածում զանգվածի չափը ֆիքսված է։ Երբեմն պահանջվում է ստեղծել զանգվածներ, որոնք կարող են աճել ըստ անհրաժեշտության: Ծրագրավորման լեզուները, ինչպիսիք են Java-ն, ունեն հավաքածուներ: Դա շրջանակ է դասերի և ինտերֆեյսերի մի շարքով: Այն ծառայում է որպես տարա մի խումբ տարրերի համար։ Հավաքածուները թույլ են տալիս պահպանել, թարմացնել, առբերել տարրերի մի շարք: Այն օգնում է աշխատել տվյալների կառուցվածքների հետ, ինչպիսիք են ցուցակները, հավաքածուները, ծառերը և քարտեզները: Ցանկը Collection Framework-ի ինտերֆեյսն է: ArrayList-ը և LinkedList-ը երկու դասեր են հավաքածուների շրջանակում: Նրանք իրականացնում են հավաքածուի ինտերֆեյսը և List ինտերֆեյսը:Այս հոդվածը քննարկում է ArrayList-ի և LinkedList-ի միջև եղած տարբերությունը: ArrayList-ը դաս է, որը ընդլայնում է AbstractList-ը և իրականացնում List ինտերֆեյսը, որը ներքուստ օգտագործում է դինամիկ զանգված՝ տվյալների տարրերը պահելու համար։ LinkedList-ը դաս է, որն ընդլայնում է AbstractSequentialList-ը և իրականացնում List, Deque և Queue ինտերֆեյսներ, որոնք ներքուստ օգտագործում են կրկնակի կապակցված ցուցակ՝ տվյալների տարրերը պահելու համար: Դա ArrayList-ի և LinkedList-ի հիմնական տարբերությունն է:
Ի՞նչ է ArrayList-ը:
ArrayList դասը օգտագործվում է դինամիկ զանգվածներ ստեղծելու համար: Ի տարբերություն սովորական զանգվածի, դինամիկ զանգվածի չափը ֆիքսված չէ։ ArrayList դասի միջոցով ստեղծված օբյեկտին թույլատրվում է ցուցակում պահել տարրերի մի շարք: Հզորությունը ավտոմատ կերպով ավելանում է, ուստի ծրագրավորողը կարող է տարրեր ավելացնել ցանկին: ArrayList դասը ընդլայնում է AbstractList դասը, որն իրականացնում է List միջերեսը։ Հետևաբար, List ինտերֆեյսի մեթոդները կարող են օգտագործվել ArrayList-ի կողմից։ Տարրեր մուտք գործելու համար օգտագործվում է get() մեթոդը։Add() մեթոդը կարող է օգտագործվել ցանկում տարրեր ավելացնելու համար: Remove() մեթոդն օգտագործվում է տարրը ցանկից հեռացնելու համար: Տե՛ս ստորև ներկայացված ծրագիրը։

Նկար 01. ArrayList-ի օրինակ
Ըստ վերը նշված ծրագրի՝ ստեղծվում է ArrayList-ի օբյեկտ։ Օգտագործելով ավելացնել մեթոդը, տարրերը կարող են ավելացվել դինամիկ: «A», «B», «C», «D» և «E» տարրերը ավելացվում են ավելացնելու մեթոդով: Հեռացման մեթոդը օգտագործվում է ցանկից որևէ տարր հեռացնելու համար: Հեռացման մեթոդին 4-ը փոխանցելիս ցուցակից հանվում է 4-րդ ինդեքսի «E» տառը: Ցուցակի մեջ կրկնելիս՝ օգտագործելով for հանգույցը, կտպվեն A, B, C և D տառերը:
Ի՞նչ է LinkedList-ը:
ArrayList-ի նման, LinkedList-ն օգտագործվում է տվյալների տարրերը դինամիկ կերպով պահելու համար: LinkedList դասի միջոցով ստեղծված օբյեկտին թույլատրվում է ցուցակում պահել տարրերի մի շարք: Հզորությունը ավտոմատ կերպով ավելանում է, ուստի ծրագրավորողը կարող է տարրեր ավելացնել ցանկին: Այն ներքին կերպով օգտագործում է կրկնակի կապակցված ցուցակը տվյալների պահպանման համար: Կրկնակի կապված ցանկում տվյալները պահվում են որպես հանգույցներ: Յուրաքանչյուր հանգույց պարունակում է երկու հղում: Առաջին հղումը ցույց է տալիս նախորդ հանգույցը: Հաջորդ հղումը ցույց է տալիս հաջորդականության հաջորդ հանգույցը:
LinkedList դասը ընդլայնում է AbstractSequentialList դասը և իրականացնում List միջերեսը: Հետևաբար, List ինտերֆեյսի մեթոդները կարող են օգտագործվել LinkedList-ի կողմից: Get() մեթոդը կարող է օգտագործվել ցուցակի տարրեր մուտք գործելու համար: Add() մեթոդը կարող է օգտագործվել ցանկում տարրեր ավելացնելու համար: Remove() մեթոդն օգտագործվում է տարրը ցանկից հեռացնելու համար: Տե՛ս ստորև ներկայացված ծրագիրը։

Նկար 02. Օրինակ LinkedList
Ըստ վերը նշված ծրագրի՝ ստեղծվում է LinkedList-ի օբյեկտ։ Օգտագործելով ավելացնել մեթոդը, տարրերը կարող են ավելացվել դինամիկ: «A», «B», «C», «D» և «E» տարրերը ավելացվում են ավելացնելու մեթոդով: Հեռացման մեթոդը օգտագործվում է ցանկից որևէ տարր հեռացնելու համար: Հեռացման մեթոդին 4-ը փոխանցելիս ցուցակից հանվում է 4-րդ ինդեքսի «E» տառը: Երբ կրկնում եք՝ օգտագործելով for հանգույցը, կտպվեն A, B, C և D տառերը:
Որո՞նք են նմանությունները ArrayList-ի և LinkedList-ի միջև:
- Եվ ArrayList-ը և LinkedList-ը իրականացնում են List ինտերֆեյս:
- Եվ ArrayList-ը և LinkedList-ը կարող են պարունակել կրկնօրինակ տարրեր:
- Եվ ArrayList-ը և LinkedList-ը պահպանում են տեղադրման կարգը:
Ո՞րն է տարբերությունը ArrayList-ի և LinkedList-ի միջև:
ArrayList ընդդեմ LinkedList |
|
ArrayList-ը դաս է, որն ընդլայնում է AbstractList-ը և իրականացնում List միջերեսը, որը ներքուստ օգտագործում է դինամիկ զանգված՝ տվյալների տարրերը պահելու համար: | LinkedList-ը դաս է, որը ընդլայնում է AbstractSequentialList-ը և իրականացնում List, Deque, Queue ինտերֆեյսներ, որոնք ներսից օգտագործում են կրկնակի կապակցված ցուցակ տվյալների տարրերը պահելու համար: |
Մուտք գործելու տարրեր | |
ArrayList-ի տարրերի մուտքն ավելի արագ է, քան LinkedList-ից: | LinkedList-ի տարրերի մուտքն ավելի դանդաղ է, քան ArrayList-ում: |
Էլեմենտների կառավարում | |
ArrayList-ի տարրերի կառավարումն ավելի դանդաղ է, քան LinkedList-ում: | LinkedList-ի տարրերի կառավարումն ավելի արագ է, քան ArrayList-ի: |
Վարքագիծ | |
ArrayList-ը գործում է որպես ցուցակ: | LinkedList-ը գործում է որպես ցուցակ և հերթ: |
Ամփոփում – ArrayList ընդդեմ LinkedList
Հավաքածուի շրջանակը թույլ է տալիս աշխատել տվյալների կառուցվածքների հետ, ինչպիսիք են ցուցակները, ծառերը, քարտեզները և հավաքածուները: Ցանկը հավաքածուի շրջանակի միջերես է: Այս հոդվածը քննարկեց ArrayList-ի և LinkedList-ի միջև եղած տարբերությունը: ArrayList-ը դաս է, որն ընդլայնում է AbstractList-ը և իրականացնում է List միջերեսը, որը ներքուստ օգտագործում է դինամիկ զանգված՝ տվյալների տարրերը պահելու համար:LinkedList-ը դաս է, որն ընդլայնում է AbstractSequentialList-ը և իրականացնում List, Deque, Queue ինտերֆեյսներ, որոնք ներքուստ օգտագործում են կրկնակի կապակցված ցուցակ՝ տվյալների տարրերը պահելու համար: Դա ArrayList-ի և LinkedList-ի միջև տարբերությունն է: