Տարբերություն Arraylist-ի և Vector-ի միջև

Տարբերություն Arraylist-ի և Vector-ի միջև
Տարբերություն Arraylist-ի և Vector-ի միջև

Video: Տարբերություն Arraylist-ի և Vector-ի միջև

Video: Տարբերություն Arraylist-ի և Vector-ի միջև
Video: Զանգվածի պակասորդ և միջուկային էներգիա | 12-րդ դասարան. ֆիզիկա | «Քան» ակադեմիա 2024, Նոյեմբեր
Anonim

Զանգվածացանկ ընդդեմ վեկտորի

Զանգվածացանկը կարող է դիտվել որպես դինամիկ զանգված, որը կարող է մեծանալ չափերով: Այս պատճառով, ծրագրավորողը կարիք չունի իմանալու զանգվածային ցանկի չափը, երբ նա սահմանում է այն: Վեկտորը կարող է դիտվել նաև որպես զանգված, որը կարող է մեծանալ: Վեկտորները կարող են հեշտությամբ տեղաբաշխվել և կարող են օգտագործվել, երբ պահեստի պահանջվող չափը հայտնի չէ մինչև գործարկման ժամանակը:

Ի՞նչ է Arraylist?

Զանգվածացանկը կարող է դիտվել որպես դինամիկ զանգված, որը կարող է մեծանալ չափերով: Հետևաբար, զանգվածային ցուցակները իդեալական են օգտագործելու այն իրավիճակներում, երբ դուք չգիտեք հայտարարագրման պահին պահանջվող տարրերի չափը:Java-ում arraylist-ները կարող են պահել միայն օբյեկտներ, նրանք չեն կարող ուղղակիորեն պահել պարզունակ տիպերը (կարող եք տեղադրել պարզունակ տիպերը օբյեկտի ներսում կամ օգտագործել պարզունակ տեսակների փաթաթման դասերը): Ընդհանուր առմամբ, arraylist-ներին տրամադրվում են ներդրում, ջնջում և որոնում կատարելու մեթոդներ: Տարր մուտք գործելու ժամանակային բարդությունը o(1) է, մինչդեռ տեղադրումը և ջնջումը ունեն o(n) ժամանակային բարդություն: Java-ում arraylists-ը կարելի է անցնել՝ օգտագործելով foreach հանգույցներ, կրկնողներ կամ պարզապես օգտագործելով ինդեքսները: Java-ում զանգվածային ցուցակները ներկայացվել են 1.2 տարբերակից և այն Java Collections Framework-ի մի մասն է:

Ի՞նչ է վեկտորը:

Վեկտորը նույնպես զանգված է, որը կարող է մեծանալ չափերով: Վեկտորները կարող են հեշտությամբ տեղաբաշխվել և կարող են օգտագործվել, երբ պահեստի պահանջվող չափը հայտնի չէ մինչև գործարկման ժամանակը: Վեկտորները կարող են նաև պահել միայն առարկաներ և չեն կարող պահել պարզունակ տեսակներ: Վեկտորները համաժամանակացված են, հետևաբար կարող են անվտանգ օգտագործվել բազմաթելային միջավայրերում: Վեկտորներին տրամադրվում են օբյեկտներ ավելացնելու, օբյեկտներ ջնջելու և օբյեկտների որոնման մեթոդներ:Java-ում arraylist-ի նման, վեկտորները կարելի է անցնել՝ օգտագործելով foreach հանգույցներ, կրկնողներ կամ պարզապես օգտագործելով ինդեքսները: Ինչ վերաբերում է Java-ին, վեկտորները ներառվել են Java-ի առաջին տարբերակից սկսած:

Ո՞րն է տարբերությունը Arraylist-ի և Vector-ի միջև:

Թեև և՛ զանգվածացանկերը, և՛ վեկտորները շատ նման են դինամիկ զանգվածներին, որոնք կարող են մեծանալ չափերով, դրանք ունեն որոշ կարևոր տարբերություններ: Զանգվածների և վեկտորների միջև հիմնական տարբերությունն այն է, որ վեկտորները համաժամանակացված են, մինչդեռ զանգված ցուցակները չհամաժամեցված են: Հետևաբար, բազմաթելային միջավայրերում զանգվածների օգտագործումը հարմար չի լինի, մինչդեռ վեկտորները կարող են ապահով օգտագործվել բազմաթելային միջավայրերում (քանի որ դրանք թելերով անվտանգ են): Բայց վեկտորների համաժամացումը կհանգեցնի կատարողականի նվազմանը: Հետևաբար, լավ գաղափար չի լինի օգտագործել վեկտորները մեկ պարուրակ միջավայրում: Ներքին առումով և՛ զանգվածացանկերը, և՛ վեկտորները օգտագործում են զանգվածներ՝ օբյեկտները պահելու համար: Երբ ընթացիկ տարածքը բավարար չէ, վեկտորները կկրկնապատկեն դրա ներքին զանգվածի չափը, մինչդեռ arraylists-ը մեծացնում է ներքին զանգվածի չափը 50%-ով:Բայց երբ օգտագործվում են և՛ զանգվածացանկերը, և՛ վեկտորները, համապատասխան նախնական հզորություն տալով, կարելի է խուսափել ներքին զանգվածի անհարկի չափափոխումներից: Այն իրավիճակում, երբ տվյալների աճի տեմպերը հայտնի են, վեկտորների օգտագործումը ավելի հարմար կլինի, քանի որ կարող է սահմանվել վեկտորների աճող արժեքը:

Խորհուրդ ենք տալիս: