Տարբերությունը զանգվածների և զանգվածների միջև

Տարբերությունը զանգվածների և զանգվածների միջև
Տարբերությունը զանգվածների և զանգվածների միջև

Video: Տարբերությունը զանգվածների և զանգվածների միջև

Video: Տարբերությունը զանգվածների և զանգվածների միջև
Video: New Jersey's Disturbing Monolith Secrete (The Rise and Fall of Tuckerton Tower) 2024, Հուլիսի
Anonim

Arrays vs Arraylists

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

Ի՞նչ են զանգվածները:

Ցուցադրված է նկար 1-ում, կոդի կտոր է, որը սովորաբար օգտագործվում է զանգվածին արժեքներ հայտարարելու և վերագրելու համար: Նկար 2-ում պատկերված է, թե ինչպիսի տեսք կունենա զանգվածը հիշողության մեջ:

int արժեքներ[5];

արժեքներ[0]=100;

արժեքներ[1]=101;

արժեքներ[2]=102;

արժեքներ[3]=103;

արժեքներ[4]=104;

Նկար 1. Զանգվածին արժեքներ հայտարարելու և վերագրելու ծածկագիր

100 101 102 103 104
Ինդեքս՝ 0 1 2 3 4

Նկար 2. Հիշողության մեջ պահվող զանգված

Վերևի կոդը սահմանում է զանգված, որը կարող է պահել 5 ամբողջ թվեր, և դրանք հասանելի են՝ օգտագործելով 0-ից 4 ինդեքսները: Զանգվածի կարևոր հատկությունն այն է, որ ամբողջ զանգվածը հատկացվում է որպես հիշողության մեկ բլոկի, և յուրաքանչյուր տարր ստանում է իր սեփական տարածք զանգվածում:Երբ զանգվածը սահմանվում է, դրա չափը ֆիքսվում է: Այսպիսով, եթե կազմման պահին վստահ չեք զանգվածի չափի մասին, դուք պետք է սահմանեք բավականաչափ մեծ զանգված՝ ապահով կողմում գտնվելու համար: Բայց, շատ դեպքերում, մենք իրականում պատրաստվում ենք օգտագործել ավելի քիչ թվով տարրեր, քան մենք հատկացրել ենք: Այսպիսով, զգալի քանակությամբ հիշողություն իրականում վատնում է: Մյուս կողմից, եթե «բավականաչափ մեծ զանգվածը» իրականում բավականաչափ մեծ չէ, ծրագիրը կխափանվի:

Ի՞նչ են Arraylists?

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

Ո՞րն է տարբերությունը Arrays-ի և Arraylists-ի միջև

Չնայած զանգվածները և զանգվածացանկերը նման են այն իմաստով, որ երկուսն էլ օգտագործվում են տարրերի հավաքածուները պահելու համար, դրանք տարբերվում են դրանց սահմանման ձևով: Զանգվածի չափը պետք է տրվի, երբ զանգվածը սահմանվում է, բայց դուք կարող եք սահմանել զանգված՝ առանց իրական չափը իմանալու: Դուք կարող եք տարրեր ավելացնել զանգվածների ցանկում այն սահմանվելուց հետո, և դա հնարավոր չէ զանգվածների դեպքում: Բայց Java-ում arraylist-ները չեն կարող պահել պարզունակ տիպեր, բայց զանգվածները կարող են օգտագործվել պարզունակ տիպեր պահելու համար։ Բայց եթե ձեզ անհրաժեշտ է տվյալների կառուցվածք, որը կարող է տարբերել իր չափերը, ապա arraylist-ը կլինի լավագույն ընտրությունը:

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