Տարբերություն ցուցակի և հավաքածուի միջև

Բովանդակություն:

Տարբերություն ցուցակի և հավաքածուի միջև
Տարբերություն ցուցակի և հավաքածուի միջև

Video: Տարբերություն ցուցակի և հավաքածուի միջև

Video: Տարբերություն ցուցակի և հավաքածուի միջև
Video: Վիճաբանություն Խաչատուր Սուքիասյանի և լրագրողի միջև 2024, Հուլիսի
Anonim

Հիմնական տարբերություն – Ցուցակ ընդդեմ Սեթ

Ծրագրավորման լեզուների մեծ մասը օգտագործում է զանգվածներ՝ նույն տեսակի տվյալների մի շարք պահելու համար: Զանգվածների հիմնական թերությունն այն է, որ զանգվածի չափը հայտարարվելուց հետո այն չի կարող փոփոխվել: Եթե ծրագրավորողը ցանկանում է պահել զանգվածի չափը գերազանցող արժեքներ, ապա նա պետք է ստեղծի նոր զանգված և պատճենի առկա տարրերը նոր զանգվածում։ Այս իրավիճակներում հավաքածուները կարող են օգտագործվել: Հավաքածուների աջակցությամբ հնարավոր է ավելացնել տարրեր, ջնջել տարրեր և շատ այլ գործողություններ: Կան տարբեր տեսակի հավաքածուներ, որոնք հասանելի են ծրագրավորման լեզուներով, ինչպիսին է Java-ն: List-ը և Set-ը հավաքածուների հիերարխիայի միջերեսներ են:Այլ ինտերֆեյսների հիմնական ինտերֆեյսը Collection-ն է: List-ի և Set-ի հիմնական տարբերությունն այն է, որ List-ն աջակցում է նույն տարրը մի քանի անգամ պահելուն, մինչդեռ Set-ը չի աջակցում նույն տարրը մի քանի անգամ պահելը: Հետևաբար, հավաքածուն թույլ չի տալիս կրկնօրինակել:

Ի՞նչ է Ցուցակը

Ցուցակը ինտերֆեյս է, որն ընդլայնում է Հավաքածուի միջերեսը: Հավաքածուի ինտերֆեյսում կան մի շարք մեթոդներ: Ավելացնել մեթոդը օգնում է ավելացնել տարր: «Հեռացնելու մեթոդը» տարրը հեռացնելն է: Կա «addAll մեթոդ»՝ մի քանի տարրեր ավելացնելու համար, մինչդեռ «removeAll մեթոդ»՝ տարրերը հավաքածուից հեռացնելու համար: Contains մեթոդը օգնում է պարզել, թե արդյոք կոնկրետ օբյեկտ կա Ցուցակում, թե ոչ: «containsAll»-ը պետք է պարզի, թե արդյոք հավաքածուում առկա են օբյեկտների հավաքածու: «Iterator» մեթոդը օգտագործվում է ցանկի տարրերը պտտելու համար: Քանի որ Ցուցակը ընդլայնում է հավաքածուն, Հավաքածուի բոլոր մեթոդները պատկանում են Ցուցակին: Բացի այդ մեթոդներից, ցանկն ունի այնպիսի մեթոդներ, ինչպիսիք են՝ ստանալ և սահմանել:Ծրագրավորողը կարող է որոշակի ինդեքսով արժեք ստանալ՝ օգտագործելով get մեթոդը: Ծրագրավորողը կարող է արժեք սահմանել որոշակի ինդեքսի վրա՝ օգտագործելով set մեթոդը: «indexOf»-ն օգտագործվում է տարրի ինդեքսը գտնելու համար։

Ցուցակում գործողությունները կարող են կատարվել ըստ դիրքի: Ծրագրավորողը կարող է տրամադրել տվյալների տարրը, որը պետք է ավելացվի ինդեքսին: Այսպիսով, այն կավելացվի կոնկրետ ցուցանիշին: Եթե ծրագրավորողը ինդեքս չի տալիս, տարրը կավելացվի Ցուցակի վերջում։ Այն նաև պահպանում է տեղադրված կարգը։ Եթե ավելացվի տարր 1-ը, ապա ավելացվի տարր 2, ապա տարրը 1-ը կլինի տարր 2-ից առաջ:

Տարբերությունը ցուցակի և հավաքածուի միջև
Տարբերությունը ցուցակի և հավաքածուի միջև

Նկար 01. Ցուցակ և սահմանել

ArrayList, LinkedList, Vector որոշ դասեր են, որոնք իրականացնում են List. ArrayList-ում տարր մուտք գործելն արագ է, բայց տեղադրումն ու ջնջումն ավելի քիչ են:ArrayList-ը անվտանգ չէ շղթաների համար: Միևնույն ArrayList-ին մի քանի թելերից օգտվելը կարող է նույն արդյունքը չտալ: LinkedList-ում տարրերը կապված են ինչպես հետընթացի, այնպես էլ առաջի հետ: LinkedList-ի միջոցով տարրերի տեղադրումն ու ջնջումն ավելի արագ է, քան ArrayList-ը: LinkedList-ն իրականացնում է ցուցակ և հերթ երկուսն էլ: Վեկտորը նման է ArrayList-ին, բայց այն անվտանգ է քայլքի համար, քանի որ բոլոր մեթոդները համաժամանակացված են:

Ինչ է Set?

Set-ը ինտերֆեյս է, որն ընդլայնում է Հավաքածուի միջերեսը: Քանի որ Set ինտերֆեյսը ընդլայնում է հավաքածուն, հավաքածուի բոլոր մեթոդները նույնպես պատկանում են Set-ին: Կոմպլեկտը չի աջակցում կրկնօրինակման արժեքներին: Հետևաբար, ծրագրավորողը չի կարող երկու անգամ պահել նույն տարրը: Այն պահպանում է տարրերի յուրահատուկ հավաքածու: SortedSet ինտերֆեյսը ընդլայնում է Set ինտերֆեյսը: SortedSet-ը պահպանում է տարրերը դասավորված հերթականությամբ: NavigableSet ինտերֆեյսը ընդլայնում է SortedSet-ը: NavigableSet-ը տրամադրում է նավիգացիոն մեթոդներ, ինչպիսիք են ստորին, հատակը, առաստաղը և այլն:

HashSet, LinkedHashSet և TreeSet որոշ դասեր են, որոնք իրականացնում են Set ինտերֆեյսը:HashSet-ն իրականացնում է Set ինտերֆեյսը: Այն չի պահպանում տեղադրված կարգը: Եթե արժեքները տեղադրվեն որպես a, x, b, այն կարող է պահվել որպես, x, a, b: LinkedSet-ը պահպանում է տեղադրված կարգը: Եթե տարրերը տեղադրվեն a, x, b կարգով, ապա պահպանման կարգը կլինի a, x, b: TreeSet-ն իրականացնում է Set և NavigableSet: Այն չի պահպանում տեղադրման կարգը, այլ պահպանում է տարրերը տեսակավորված հերթականությամբ: Եթե տեղադրված կարգը a, c, b է, ապա տարրերը կպահվեն որպես a, b, c: Բոլոր HashSet-ը, LinkedHashSet-ը և TreeSet-ը չեն ունենա կրկնօրինակ տարրեր:

Որո՞նք են նմանությունները ցուցակի և հավաքածուի միջև:

  • Եվ Ցուցակ և Սահմանել միջերեսները ընդլայնում են Հավաքածուի միջերեսը:
  • Եվ ցուցակագրել և սահմանել աջակցության գործողություններ, ինչպիսիք են տարրերի ավելացումը, հեռացումը:

Ո՞րն է տարբերությունը ցուցակի և հավաքածուի միջև:

Ցուցակ ընդդեմ Սեթ

List Interface-ը Հավաքածուի ենթաինտերֆեյսն է, որը պարունակում է այնպիսի գործողություններ կատարելու մեթոդներ, ինչպիսիք են տեղադրումը, ջնջումը ինդեքսի հիման վրա: Set Interface-ը Հավաքածուի ենթաինտերֆեյս է, որը պարունակում է այնպիսի գործողություններ կատարելու մեթոդներ, ինչպիսիք են տարրերի տեղադրումը, ջնջումը` պահպանելով եզակի տարրերը:
Դասընթաց
ArrayList, Vector և LinkedList դասեր են, որոնք իրականացնում են List ինտերֆեյս: HashSet, LinkedHashSet և TreeSet դասեր են, որոնք իրականացնում են Set ինտերֆեյսը:
տարրերի կրկնօրինակում
Ցանկը աջակցում է տարրերի կրկնօրինակմանը: Սեթը չի աջակցում տարրերի կրկնօրինակում: Տարրերը եզակի են։

Ամփոփում – Ցուցակ ընդդեմ Սեթ

Հավաքածուներն օգտագործվում են տարրերը դինամիկ կերպով պահելու համար: Ծրագրավորման լեզուները, ինչպիսիք են Java-ն, ապահովում են Collection ինտերֆեյսը: List-ը և Set-ը երկու ինտերֆեյս են, որոնք պատկանում են Collection ինտերֆեյսին: Երկու ինտերֆեյսներն էլ ընդլայնում են հավաքածուն: Այս հոդվածը քննարկեց ցուցակի և Set-ի միջև եղած տարբերությունը: List-ի և Set-ի միջև հիմնական տարբերությունն այն է, որ List-ն աջակցում է նույն տարրը մի քանի անգամ պահելուն, մինչդեռ Set-ը չի աջակցում նույն տարրը մի քանի անգամ պահելը: Սեթը միշտ պահպանում է եզակի տարրեր:

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