Kollektsiyalar Kollektsiyaga kiritish


Umumiy bo‘lmagan kollektsiyalar



Download 22,95 Kb.
bet2/2
Sana10.02.2022
Hajmi22,95 Kb.
#441918
1   2
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


ArrayList
Shuningdek, ArrayList sinfi ob’ektlar kollektsiyasini namoyish etadi. Agar har xil turdagi ob’ektlar – satrlar, sonlar va boshqa ob’ektlarni birgalikda saqlash zarur bo‘lsa, ushbu sinf buning uchun qulay bo‘ladi.
Shuningdek, ArrayList sinfi ob’ektlar kollektsiyasini namoyish etadi. Agar har xil turdagi ob’ektlar – satrlar, sonlar va boshqa ob’ektlarni birgalikda saqlash zarur bo‘lsa, ushbu sinf buning uchun mos bo‘ladi.

Sinfning asosiy usullari:

int Add (object value): ro‘yxatga value ob’ektini qo‘shadi

void AddRange (ICollection col): col kollektsiyasi ob’ektlarini ro‘yxatga qo‘shadi.

void Clear(): barcha elementlarni ro‘yxatdan olib tashlaydi

bool Contains (object value): ro‘yxatda value ob’ekti mavjudligini tekshiradi.


Mavjud bo‘lsa, true qaytaradi, aks holda false qaytaradi

void CopyTo (Array array): joriy ro‘yxatni array massiviga nusxalaydi.

ArrayList GetRange(int index, int count): index indeksidan boshlangan va ro‘yxatdagi count elementlari sonidan iborat ArrayList yangi ro‘yxatni qaytaradi.

int IndexOf (object value): elementning indeksini qaytaradi

void Insert (int index, object value): index indeksi bo‘yicha ro‘yxatga value ob’ektini qo‘shadi

void InsertRange (int index, ICollection col) ro‘yxatga index indeksidan boshlangan ICollection kollektsiyasini qo‘shadi.

int LastIndexOf (object value): ob’ektning ro‘yxatidagi oxirgi kirish indeksini qaytaradi

void Remove(object value): ob’ektni ro‘yxatdan olib tashlaydi

void RemoveAt (int index): index indeksi bo‘yicha elementni ro‘yxatdan olib tashlaydi

void RemoveRange (int index, int count): index indeksidan boshlab, count ro‘yxatidan elementlarni olib tashlaydi

void Reverse (): ro‘yxatni teskarisiga aylantiradi

void SetRange (int index, ICollection col): col kollektsiyasi elementlarini index indeksidan boshlab ro‘yxatga nusxa oladi

void Sort (): kollektsiyani saralaydi

Bundan tashqari, Count xossasi orqali ro‘yxatdagi elementlar sonini olish mumkin.

Misolda sinfdan foydalanishni ko‘rib chiqamiz.
using System;
using System.Collections;

namespace Collections


{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
list.Add(2.3);//double turidagi ob’ektni ro‘yxatga kiritamiz
list.Add(55);//int turidagi ob’ektni ro‘yxatga kiritamiz
list.AddRange(new string[] {"Hello", "world"});

//miqdorlarni tanlash


foreach (object o in list)
{
Console.WriteLine(o);
}

//birinchi elementni olib tashlayman


list.RemoveAt(0);
//ro‘yxatni o‘zgartiramiz
list.Reverse();
//indeks bo‘yicha elementni olish
Console.WriteLine(list[0]);
//miqdorlarni tanlash
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}

Console.ReadLine();


}
}
}
Birinchidan, ArrayList sinfi System.Collections nomlar fazosida joylashganligi sababli, kollektsiyalar bilan ishlashimiz uchun uni (using System.Collections;) qo‘shishimiz kerek bo‘ladi.

Dastlab, kolleksiya obʼyektini konstruktor orqali yaratamiz: ArrayList list = new ArrayList ();. Zarur boʻlganda, biz kolleksiyani massiga o‘xshash initsializatsiyasini amalga oshirishimiz mumkin, masalan, ArrayList list = new ArrayList () {1, 2, 5, «string», 7.7};

Keyinchalik har xil turdagi qiymatlarni qo‘shamiz. Ushbu kollektsiya sinfi, ko‘plab boshqa kollektsiyalar singari, ikkita qo‘shish usuliga ega: Add usuli orqali yagona ob’ekt va ob’ektlar to‘plami, masalan, massiv yoki boshqa kollektsiya AddRange usul orqali qo‘shiladi.

foreach tsikli orqali ro‘yxatning barcha ob’ektlariga o‘tishimiz mumkin. Mazkur kollektsiya faqat sonlar yoki satrlar emas, turli ob’ektlarni saqlashi uchun object: foreach (object o in list) turi tanlangan.

Ko‘plab kollektsiyalar, shu jumladan ArrayList, o‘chirishni Remove/RemoveAt usullari orqali amalga oshiradi. Bu holatda o‘chirilayotgan elementning indeksini RemoveAt usulga o‘zatish orqalibirinchi elementni o‘chiriladi.

Shuningdek, dastur oxirida kollektsiya elementlarini for tsikli yordamida ekranga chiqaramiz. Mazkur holatda kollektsiyalarni tanlash massiv kabi amalga oshiriladi. Kollektsiya elementlarining sonini Count xossasi orqali olishimiz mumkin



Indeksator yordamida kollektsiya elementinining indeksini massivga o‘xshash olish mumkin : object firstObj = list [0];
Download 22,95 Kb.

Do'stlaringiz bilan baham:
1   2




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