Kollektsiyalar Kollektsiyaga kiritish


Umumiy bo‘lmagan kollektsiyalar


Download 25.07 Kb.
bet2/3
Sana16.10.2023
Hajmi25.07 Kb.
#1704683
1   2   3
Bog'liq
Kollektsiyalar

Umumiy bo‘lmagan kollektsiyalar
Umumlashtirilmagan yoki oddiy kolleksiyalar System.Collections nomlar maydonida aniqlangan. Ularning xususiyati shundan iborat: ularning faoliyati, funktsional imkoniyatlari ushbu nomlar fazosi bo‘lgan interfeyslarda tasvirlanadi.

Asosiy interfeyslarni ko‘rib chiqamiz:


Umumlashtirilmagan yoki oddiy kolleksiyalar System.Collections nomlar fazosida aniqlangan. Ularning xususiyati shundan iborat: ularning funktsionalligi, funktsional imkoniyatlari ushbu nomlar fazosida bo‘lgan interfeyslarda tasvirlanadi.

Asosiy interfeyslarni ko‘rib chiqamiz:

IEnumerable: GetEnumerator usulini belgilaydi. Ushbu usul ro‘yxatdan o‘tkazuvchini, ya’ni IEnumerator interfeysini amalga oshiradigan ayrim ob’ektni qaytaradi.

IEnumerator: ushbu interfeysni amalga oshirish kollektsiya elementlarini foreach tsikli yordamida tanlash imkonini beradi

ICollection: barcha umumlashtirilmagan kolleksiyalar uchun asos hisoblanadi, barcha umumlashtirilmagan kolleksiyalar uchun asosiy usullar va xususiyatlarni belgilaydi (masalan, CopyTo usuli va Count xususiyati). Mazkur interfeys IEnumerable interfeysidan meros bo‘lib, ular uchun bazaviy interfeys ham umumiy bo‘lmagan kollektsiyalarning barcha sinflari tomonidan amalga oshiriladi

ILISt: kollektsiya elementlarini tartibga ko‘ra olish imkonini beradi. Shuningdek, elementlarni manipulyatsiya qilish uchun bir qator usullarni belgilaydi: Add (elementlarni qoʻshish), Remove/RemoveAt (elementni olib tashlash) va boshqa.

IComparer: ikki ob’ektni solishish uchun int Compare(object x, object y) usulini belgilaydi

IDictionary: ob’ektlarni kalit-qiymati jo‘natish ko‘rinishida saqlash kerak bo‘lgan kollektsiyaning harakatini aniqlaydi: har bir ob’ekt uchun noyob kalit aniqlanadi va ushbu kalitga mos keladi

IDictionaryEnumerator: loyihani ro‘yxatdan o‘tkazuvchi usul va xossalarni belgilaydi

IEqualityComparer: ikkita Equals va GetHashCode usullarini belgilaydi, ular yordamida ikkita ob’ektlar tenglik predmetiga solishtiriladi

IStructuralComparer: ikki ob’ektni strukturaviy solishtirish uchun Compare usulini belgilaydi: shunday solishtirishda ob’ektlarga havola emas, balki ob’ektlarning bevosita tarkibi solishadi

IStructuralEquatable: ikki ob’ektning strukturaviy tengligini o‘tkazish imkonini beradi. IStructuralComparer interfeysi bilan ikki ob’ektning tarkibi solishtiriladi

Ushbu interfeyslar System.Collections nomlar fazosidagi quyidagi kollektsiyalar sinflari bilan amalga oshiriladi:

ArrayList: oddiy ob’ektlar kollektsiyasi sinfi. IList, ICollection, IEnumerable interfeyslarini amalga oshiradi

BitArray: bitlar qiymatlari massivini o‘z ichiga olgan kollektsiya sinfi. ICollection, IEnumerable interfeyslarini amalga oshiradi

Hashtable: hesh-jadvalni taqdim etadigan va “kalit-qiymati ” juft to‘plamlarini saqlaydigan kollektsiya sinfi

Queue: FIFO algoritmi bo‘yicha faoliyat ko‘rsatayotgan ob’ektlar navbatining sinfi («birinchi kirgang‘ birinchi chiqadi»). ICollection, IEnumerable interfeyslarini amalga oshiradi

SortedList: kalit bo‘yicha sortlangan «kalit-qiymati» juft to‘plamlarini saqlaydigan kollektsiya sinfi. ICollection, IDictionary, IEnumerable interfeyslarini amalga oshiradi

Stek: yig‘ish klassi

Ushbu kollektsiyalarning ayrim sinflarini ko‘rib chiqamiz.


Garchi C # tilida bitta turdagi ob’ektlar to‘plamini saqlaydigan massivlar mavjud bo‘lsa ham, ular bilan ishlash har doim ham qulay emas. Masalan, massiv fiksirlangan sondagi ob’ektlarni saqlaydi, lekin biz qancha ob’ektlarni zarur bo‘lishini bilmasligimiz ham mumkin. Bunda kollektsiyalarni qo‘llash qulay. Kollektsiyalarning yana bir qo‘shimchasi shundan iborat, ularning ayrimlari ma’lumotlarning standartli tuzilmalarini amalga oshiradi, masalan, turli maxsus vazifalarni hal etish uchun foydalanilishi mumkin bo‘lgan stek, navbat, loyiha.

Kolleksiyalar sinflarining aksariyati System.Collections, System.Collections.Generic va System.Collections.Specialized (maxsus kolleksiyalar sinflari) nomlari makonlarida mavjud. Shuningdek, vazifalarni parallel bajarish va ko‘p oqimli murojaatni foydalanishni ta’minlash uchun System.Collections.Concurrent nomlar fazosidagi kollektsiyalar sinflari qo‘llaniladi



Download 25.07 Kb.

Do'stlaringiz bilan baham:
1   2   3




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