სხვაობა ზოგად და არაგენერიკულ კოლექციას შორის C-ში

Სარჩევი:

სხვაობა ზოგად და არაგენერიკულ კოლექციას შორის C-ში
სხვაობა ზოგად და არაგენერიკულ კოლექციას შორის C-ში

ვიდეო: სხვაობა ზოგად და არაგენერიკულ კოლექციას შორის C-ში

ვიდეო: სხვაობა ზოგად და არაგენერიკულ კოლექციას შორის C-ში
ვიდეო: Generic and Non Generic Collections in NET 2024, ნოემბერი
Anonim

ძირითადი განსხვავება – ზოგადი და არაზოგადი კოლექცია C-ში

ზოგადი კოლექცია არის კლასი, რომელიც უზრუნველყოფს ტიპის უსაფრთხოებას საბაზისო კოლექციიდან გამომდინარე და კონკრეტული ტიპის წევრების დანერგვის გარეშე. არაგენერიკული კოლექცია არის სპეციალიზებული კლასი მონაცემთა შენახვისა და მოსაძიებლად, რომელიც უზრუნველყოფს სტეკების, რიგების, სიებისა და ჰეშტებლების მხარდაჭერას. ძირითადი განსხვავება ზოგად და არაზოგად კოლექციას შორის C-ში არის ის, რომ ზოგადი კოლექცია მკაცრად არის აკრეფილი, ხოლო არაგენერიკული კოლექცია არ არის მკაცრად აკრეფილი.

რა არის ზოგადი კოლექცია C-ში?

არაზოგადი კოლექციები, როგორიცაა ArrayList, Queue, Stack და ა.შ.შეუძლია შეინახოს სხვადასხვა ტიპის მონაცემთა ელემენტები. ელემენტების მიღებისას, პროგრამისტმა უნდა აკრიფოს cast მათ მონაცემთა სწორი ტიპით. წინააღმდეგ შემთხვევაში, ამან შეიძლება გამოიწვიოს გაშვების გამონაკლისი. ამ პრობლემის გადასაჭრელად შეიძლება გამოყენებულ იქნას ზოგადი კოლექციების კლასები. ზოგადი კოლექციები ინახავს ელემენტებს შიგნიდან მათი რეალური ტიპების მასივებში. ამიტომ, ტიპის ჩამოსხმა არ არის საჭირო. მათი გამოყენება შესაძლებელია მითითებული ტიპის ან ტიპების ელემენტების შესანახად. ზოგიერთი ზოგადი კოლექციის კლასი არის სია, ლექსიკონი, დახარისხებული სია, ჰეშსეტი, რიგი, დასტა.

განსხვავება ზოგად და არაგენერიკულ კოლექციას შორის C-ში
განსხვავება ზოგად და არაგენერიკულ კოლექციას შორის C-ში

GenericList შეიცავს მითითებული ტიპის ელემენტებს. მას შეუძლია გაზარდოს სია შესაბამისად ელემენტების დამატებისას. როდესაც არსებობს შემდეგი განცხადება, ყველა ელემენტი, რომელიც შეიძლება შეინახოს სიაში1, უნდა იყოს მთელი რიცხვები, სიის სია1 – ახალი სია ();

Generic Dictionary C-ში არის გასაღებებისა და მნიშვნელობების კოლექცია. როდესაც არსებობს შემდეგი განცხადება, ობიექტის ლექსიკონი1 შეუძლია შეინახოს int ტიპის კლავიშები და სტრიქონის ტიპის მნიშვნელობები.

ლექსიკონი1=ახალი ლექსიკონი ();

ზოგადი SortedList კოლექცია ინახავს გასაღებების და მნიშვნელობების წყვილებს ნაგულისხმევად გასაღებების ზრდის მიხედვით. ქვემოთ მოცემული მაგალითი ინახავს int ტიპის გასაღებს და სტრიქონის ტიპის მნიშვნელობას.

SortedList s0=ახალი SortedList ();

ეს არის რამდენიმე მაგალითი Generic Collection-ისთვის C-ში. ამ კოლექციებს შეუძლიათ შეინახონ მითითებული მონაცემთა ტიპების მრავალი მნიშვნელობა. ასე რომ, ისინი მკაცრად აკრეფილია.

რა არის არაგენერიკული კოლექცია C-ში?

მასივები შეიძლება გამოყენებულ იქნას მრავალი ელემენტის შესანახად. ერთი ნაკლი არის ის, რომ მას შეუძლია შეინახოს იგივე მონაცემთა ტიპის ელემენტები. C-ში არის კლასები, რომლებიც შეიძლება გამოყენებულ იქნას მრავალი მნიშვნელობის ან ობიექტის შესანახად, რომელიც ცნობილია როგორც კოლექციები. კოლექციები ხელს უწყობს ობიექტების შენახვას, განახლებას, წაშლას, ძიებას, დახარისხებას.კოლექციის ზომა შეიძლება გაიზარდოს ან შემცირდეს დინამიურად.

ზოგიერთი არაგენერიკური კოლექციის კლასია ArrayList, SortedList, Stack, Queue და HashTable. კოლექციის თითოეული კლასი ახორციელებს IEnumerable ინტერფეისს. ის ეხმარება კოლექციის ელემენტების ელემენტების გამეორებას foreach ციკლის გამოყენებით.

ArrayList არის მასივის ალტერნატივა. თუ არსებობს მასივი, რომელსაც შეუძლია შეინახოს 10 ელემენტი, მას არ შეუძლია შეინახოს 20 ელემენტი. თუ მასივი ინიციალიზებულია 10 ელემენტზე, მაგრამ ინახავს მხოლოდ 5 ელემენტს, მაშინ დანარჩენი არ გამოიყენება. ამიტომ, მასივი ფიქსირდება. ArrayList-ში შესაძლებელია ელემენტების დამატება ან წაშლა ინდექსის მიხედვით. ეს საშუალებას იძლევა დინამიური მეხსიერების განაწილება. დალაგების მეთოდი შეიძლება გამოყენებულ იქნას ელემენტების ზრდის მიხედვით დასალაგებლად.

HashTable გამოიყენება საკვანძო მნიშვნელობების წყვილების კოლექციის წარმოსადგენად. ისინი ორგანიზებულია გასაღების ჰეშკოდის საფუძველზე. ამიტომ, ყველა ელემენტს აქვს საკვანძო მნიშვნელობის წყვილი. გასაღები შეიძლება გამოყენებულ იქნას კოლექციის კონკრეტულ ელემენტზე წვდომისთვის. Stack წარმოადგენს ელემენტებზე ბოლო შესვლის, პირველი წვდომას. Queue გამოიყენება ნივთების პირველი წვდომისთვის. ეს არის ზოგიერთი არაგენერიკური კოლექცია, რომელსაც მხარს უჭერს C. ამ კოლექციებს შეუძლიათ შეინახონ სხვადასხვა ტიპის ელემენტები.

რა მსგავსებაა ზოგად და არაზოგად კოლექციას შორის C-ში?

როგორც ზოგადი, ასევე არაგენერიკული კოლექცია შეიძლება გამოყენებულ იქნას მრავალი ელემენტის შესანახად C-ში

რა განსხვავებაა ზოგად და არაგენერიკულ კოლექციას შორის C-ში?

ზოგადი vs არაზოგადი კოლექცია C-ში

ზოგადი კოლექცია არის კლასი, რომელიც უზრუნველყოფს ტიპის უსაფრთხოებას საბაზისო კოლექციიდან გამომდინარე და კონკრეტული ტიპის წევრების დანერგვის გარეშე. არაგენერიკული კოლექცია არის სპეციალიზებული კლასი მონაცემთა შენახვისა და მოსაძიებლად, რომელიც უზრუნველყოფს სტეკების, რიგების, სიების და ჰეშის ცხრილების მხარდაჭერას.
სახელთა სივრცე
ზოგადი კოლექციის კლასები სისტემაშია. კოლექციები. Generics სახელთა სივრცე. არაზოგადი კოლექციის კლასები სისტემაშია. კოლექციების სახელთა სივრცე.
ტიპი
ზოგადი კოლექცია მკაცრად აკრეფილია. არაზოგადი კოლექცია არ არის მკაცრად აკრეფილი.
ელემენტების შენახვა
ზოგადი კოლექციები ინახავს ელემენტებს შიგადაშიგ მათი რეალური ტიპების მასივებში. არაგენერიკული კოლექციები ინახავს ელემენტებს შიგნიდან ობიექტის მასივებში, რათა შეინახოს ნებისმიერი ტიპის მონაცემები.

შეჯამება – ზოგადი და არაზოგადი კოლექცია C-ში

ეს სტატია განიხილავდა განსხვავებას ზოგად და არაგენერიკულ კოლექციას შორის C-ში. განსხვავება ზოგად და არაგენერიკულ კოლექციას შორის არის ის, რომ ზოგადი კოლექცია მკაცრად არის აკრეფილი, ხოლო არაგენერიკური კოლექცია არ არის მკაცრად აკრეფილი.

გირჩევთ: