Олий таълим ўқув режаларидаги фанларга



Download 4,03 Mb.
bet78/102
Sana23.02.2022
Hajmi4,03 Mb.
#136190
1   ...   74   75   76   77   78   79   80   81   ...   102
Bog'liq
Dasturlash asoslari majmua

Класс

вазифаси

Амалга оширилган энг муҳим интерфейслар

ArrayList

Ўлчамларини динамик ўзгартирадиган массив

IList, ICollection, IEnumerable, ICloneable

BitArray

Битли қийматларни сақлаш учун компакт массив

ICollection, IEnumerable, ICloneable

Hashtable

Хэш-жадвал

IDictionary, ICollection, IEnumerable, ICloneable

Queue

Навбат

ICollection, ICloneable, IEnumerable

SortedList

Калитлар бўйича тартибланган коллекция, унинг элементларига калит ёки индекслари бўйича мурожаат қилинади.

IDictionary, ICollection, IEnumerable, ICloneable

Stack

Стек

ICollection, IEnumerable



System.Collections.Specialized холатлар фазоси ўз ичига махсуслаштирилган коллекцияларни (масалан, StringCollection сатрлар коллекцияси, StringDictionary сатрли калитга эга хеш-жадвал) олади, .
Стандарт коллекцияга намуна сифатида ArrayList классини кўрамиз.

ArrayList класси.


Оддий массивларнинг асосий камчилиги шундаки, унинг элементларини сақлаш учун зарур бўлган хотира хажми массив билан ишлашгача бўлган даврда ажратилиши талаб қилиниши билан боғлиқ. ArrayList класси дастурчига массив учун хотирадан жой ажратиш ҳақида қайғурмаслик хамда турли типдаги элементларни битта массивда сақлаш имконини беради.
ArrayList типидаги объектларни яратишда тўғридан – тўғри object типидаги 16 та элементли массив яратилади. Унинг констуркторида кўрсатиш ёки Capacity ҳусусияти қийматини ўрнатиш орали массив элементлари сонини керагича бўлгилаш мумкин. Масалан,:
ArrayList arr1 = new ArrayList(); // 16 элементли массив яратилмоқда
ArrayList arr2 = new ArrayList(1000); // 1000 элементли массив яратилмоқда
ArrayList arr3 = new ArrayList();
arr3.Capacity = 1000; // элементлар миқдори кўрсатилмоқда
ArrayList класси Array класси ёрдамида амалга оширилган, яъни шу класснинг ёпиқ майдонини ўз ичига олган. C# да барча типлар object классининг авлодлари бўлгани учун, массивлар иҳтиёрий типдаги маълумотларни ўзида сақлаши мумкин. Ҳаттоки, агар массивда оддий бутун сонлар сақланса, у холда аҳамиятли типдаги элементлар мавжуд, ички класс object типидаги экземплярга ҳаволалар массиви бўлади хамда ихчамланган тип-қийматларни мужассамлатиради. Демак, массивга киритишда элементлар ихчамланади, чиқариб олинаётганда эса аслига қайтарилади.
Агар массивга янги элеменртларни қўшишда массив элементларининрг сони унинг хажмидан кўпайиб кетса, у ўзидан-ўзи икки марта катталашади, яъни хотирадан такроран жой ажратилади ва у ерга мавжуд барча элементлар кўчирилади. Массив элементларини ArrayList класси экземплярига кўчиришга намуна:
arr1.Add( 123 ); arr1.Add( -2 ); arr1.Add( "Вася" );
Элементларга мурожаат индекслар бўйича амалга оширилади, аммо бу холда олинган ҳаволани бутун сонга айлантириш керак бўлади. масалан:
int a = (int) arr1[0];
int b = (int) arr1[1];
string s = (string) arr1[2];
Сақланаётган элемент типига иом бўлмаган типга келтиришга уринилганда истисно қилинадиган InvalidCastException вазият юзага келади.
Дастурнинг ишончлилигини ошириш учун қуйидаги усулни қўллаш мумкин: ArrayList классининг экземпляри класснинг ёпиқ майдони деб эълон қилинади ва унда маълум бир типдаги қийматлар коллекцияси сақланиши керак, сўнгра шу коллекция билан ишлаш ArrayList методларига ўз функциялари узатувчи методлари эълон қилинади.
Бу усулнинг камчилиги шундаки, стандар коллекциянинг ҳар бир методи учун стандарт методни чақирувчи қобиқ-методни кўрсатишга тўғри келади. Бу амал қийин бўлмасада, унчалик чиройли ҳисобланмайди. C# дастурлаш тилида 2.0 версиялан бошлаб прототип-класслар (generics) лар жорий қилинди.

Download 4,03 Mb.

Do'stlaringiz bilan baham:
1   ...   74   75   76   77   78   79   80   81   ...   102




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish