Mobil ilovalar ishlab chiqish



Download 387,44 Kb.
bet27/34
Sana14.01.2022
Hajmi387,44 Kb.
#363624
1   ...   23   24   25   26   27   28   29   30   ...   34
Bog'liq
Dart tili mustaqil ish

5-bob. To'plamlar

List


ro'yxati yoki ro'yxat qiymatlar to'plamini ifodalaydi. Boshqa dasturlash tillarida u massivlarga mos keladi. Keling, raqamlar ro'yxatini aniqlaymiz:

1

var list = [1, 2, 3];

Shuningdek, biz turni aniq belgilashimiz mumkin:

1

List list = [1, 2, 3];

Massiv aniqlanganda, unga kvadrat qavs ichidagi elementlar ro'yxati beriladi.
Indekslar massiv elementlariga murojaat qilish uchun ishlatiladi. Indeks massivdagi elementning sonini ifodalaydi va raqamlash noldan boshlanadi, shuning uchun birinchi elementning indeksi 0 bo'ladi. Va massivdagi to'rtinchi elementga murojaat qilish uchun biz, masalan, indeks 3 dan foydalanishimiz kerak. : roʻyxat [3]. Massiv elementlarining qiymatlarini olish va o'rnatish uchun indekslardan foydalanamiz:


1

2

3



4

5

6



7

void main (){

     


    var list = [2, 4, 6];

    list[1] = 5;        // установка 2-го элемента

    int d = list[2];    // получем 3-й элемент

    print(d);           // 6

}

Agar biz mavjud bo'lmagan indeksga kirishga harakat qilsak, xatoga duch kelamiz:




1

2


var list = [2, 4, 6];

list[6] = 5;


Bunday holda, ro'yxatda faqat 3 ta element mavjud, shuning uchun indeks 6 bo'lgan element ro'yxatda mavjud emas.


Ro'yxatni takrorlash uchun biz o'rnatilgan for / while tsikllaridan foydalanishimiz mumkin:


1

2

3



4

5

6



7

void main (){

     


    var list = [2, 4, 6];

    for(int i=0; i < list.length; i++){

        print(list[i]);

    }


}

Bunday holda, hisoblagich o'zgaruvchisi i indeks vazifasini bajaradi. Indeks list.length qiymatiga, ya'ni ro'yxat uzunligiga yetguncha o'sadi.


Ammo biz kollektsiyalar uchun maxsus tsikldan ham foydalanishimiz mumkin:


1

2

3



4

5

6



7

void main (){

     


    var list = [2, 4, 6];

    for (var n in list){

        print(n);

    }


}

Ro'yxat ro'yxatini takrorlashda takrorlanadigan har bir element n o'zgaruvchisiga joylashtiriladi, shundan so'ng biz uning qiymatini konsolga chop etishimiz mumkin.


Ruxsat etilgan va qat'iy bo'lmagan ro'yxatlar

Ro'yxatlar sobit (qattiq kodlangan) va qat'iy bo'lmagan (hajmi kattalashishi mumkin) bo'lishi mumkin. Suzuvchi ro'yxatlarni yaratishga misollar:




1

2


var list1 = [];

var list2 = [2, 4, 6];



Suzuvchi ro'yxatlarning o'ziga xos xususiyati shundaki, biz ularning hajmini dinamik ravishda o'zgartirishimiz mumkin, masalan, add () usulidan foydalanib, yangi elementlarni qo'shishimiz mumkin:

1

2

3



4

5

6



7

8

9



10

void main (){

     


    var list1 = [3];

    list1.add(1);

    list1.add(4);

    list1.add(5);

    for (var n in list1){

        print(n);

    }

}


Konsol chiqishi:

3

1



4

5

Ruxsat etilgan ro'yxatni yaratish uchun List sinfining nomlangan konstruktorlaridan birini ishlatishingiz mumkin. Masalan, List.filled konstruktori (item_count, default_value) ikkita parametr oladi. Birinchi parametr - belgilangan ro'yxatdagi elementlar soni. Ikkinchi parametr ro'yxatni yaratishda barcha elementlarga ega bo'ladigan qiymatni ko'rsatadi:



1

2

3



4

5

6



7

8

9



10

11

12



13

void main (){

     


    var list1 = List.filled(4, 2); // фиксированный список [2, 2, 2, 2]

    list1[0] = 3;

    list1[1] = 7;

    list1[2] = 11;

    list1[3] = 15;

    //list1.add(1); // нельзя добавить новый элемент

     

    for (var n in list1){



        print(n);

    }


}

Ro'yxat aniq bo'lsa-da, biz individual elementlarning qiymatlarini o'zgartirishimiz mumkin.
Ruxsat etilgan ro'yxatni yaratishning yana bir usuli List.generate () konstruktoridir:

1

List.generate(количество_элементов, функция_наполнения, можно_ли_добавлять)

Birinchi parametr elementlar sonini ko'rsatadi. Ikkinchi parametr ro'yxatni to'ldirish funktsiyasini ifodalaydi, bu element indeksi parametr sifatida uzatiladi. Uchinchi parametr mantiqiy qiymatdir - agar rost bo'lsa, u holda ro'yxat MUMKIN (kengaytirilmaydi), agar noto'g'ri bo'lsa, ro'yxat tuzatiladi.
List.generate konstruktoridan foydalanish:

1

2

3



4

5

6



7

8

9



10

11

12



13

14


void main (){

    var list1 = List.generate(4, (int index) => index + 1, growable: false); // фиксированный список [1, 2, 3, 4]

 

    list1[0] = 3;



    list1[1] = 7;

    list1[2] = 11;

    list1[3] = 15;

    //list1.add(1); // нельзя добавить новый элемент

      

    for (var n in list1){



        print(n);

    }


     

}


Xususiyatlari va usullarini sanab o'ting

Ro'yxatning asosiy xususiyatlari:


birinchi: birinchi elementni qaytaradi
oxirgi: oxirgi elementni qaytaradi
uzunlik: ro'yxat uzunligini qaytaradi
teskari: barcha elementlar qarama-qarshi tartibda joylashgan ro'yxatni qaytaradi
isEmpty: ro'yxat bo'sh bo'lsa, true qiymatini qaytaradi
Ro'yxatning asosiy usullari:

qo'shish (E qiymati): ro'yxat oxiriga element qo'shadi


addAll (Iterable iterable): roʻyxat oxiriga boshqa roʻyxat qoʻshadi
clear (): roʻyxatdagi barcha elementlarni olib tashlaydi
indexOf (E element): elementning birinchi indeksini qaytaradi
insert (int index, E element): elementni ma'lum bir joyga kiritadi
olib tashlash (Ob'ekt qiymati): ob'ektni ro'yxatdan o'chiradi (faqat ro'yxatdagi elementning birinchi paydo bo'lishi o'chiriladi)
removeAt (int index): indeksdagi elementlarni olib tashlaydi
removeLast (): ro'yxatning oxirgi elementini o'chiradi
forEach (void f (E element)): ro'yxat elementlari bo'yicha ba'zi amallarni bajaradi, bu parametr funksiyasi, for..in siklining analoglari tomonidan o'rnatiladi.
sort (): roʻyxatni tartiblaydi

pastki ro'yxat (int start, [int end]): ro'yxatning indeks boshidan indeks oxirigacha bo'lgan qismini qaytaradi


o'z ichiga oladi (Ob'ekt elementi): agar element ro'yxatda bo'lsa, rostni qaytaradi
qo'shilish ([String separator = ""]): Ro'yxatning barcha elementlarini satrga birlashtiradi. Siz satrdagi elementlarni ajratadigan ixtiyoriy ajratuvchi parametrni belgilashingiz mumkin
o'tkazib yuborish (int count): Birinchi hisoblash elementlari mavjud bo'lmagan to'plamni qaytaradi
take (int count): Birinchi hisoblash elementlarini o'z ichiga olgan to'plamni qaytaradi
bu erda (bool testi (E element)): elementlari ba'zi shartlarga javob beradigan to'plamni qaytaradi, bu funksiya sifatida qabul qilinadi

Bu List sinfining asosiy funksiyalarining qisqacha ro'yxati. Hujjatlarda maydonlar / usullar / konstruktorlarning to'liq ro'yxati mavjud


Ba'zi sohalar va usullarni qo'llash

1

2

3



4

5

6



7

8

9



10

11

12



13

14

15



16

17

18



19

20

21



22

23

24



25

26

27



28

29

30



void main (){

     


    var list = [-3, -1, 2, 4, 5, 7];

    // получим первый элемент

    print(list.first);  // -3

    // получим последний элемент

    print(list.last);   // 7

    // получим длину списка

    print(list.length); // 6

     


    // добавим список

    list.addAll([4, 6]);

     

    // соединим элементы списка в строку, разделитель запятая



    print(list.join(", ")); // -3, -1, 2, 4, 5, 7, 4, 6

     


    // отсортируем список

    list.sort();

    print(list.join(", ")); // -3, -1, 2, 4, 4, 5, 6, 7

     


    // удалим число 4

    list.remove(4);

    // удалим второй элемент

    list.removeAt(1);

    print(list.join(", ")); // -3, 2, 4, 5, 6, 7

     


    // получим элементы больше  2

    list = list.where((element) => element > 2).toList();

    print(list.join(", ")); // 4, 5, 6, 7

}



Set


Set klassi noyob ob'ektlarning tartibsiz to'plamini ifodalaydi. Jingalak qavslar {} toʻplam yaratish uchun ishlatiladi:

1

2

3



4

5


var set = {1, 2, 3, 5};

// эквивалентные определения Set

Set set1 = {1, 2, 3, 5};

var set2 = {1, 2, 3, 5};

Set set3 = {1, 2, 3, 5};


To'plamni takrorlash uchun siz for..in tsiklidan foydalanishingiz mumkin:

1

2

3



4

5

6



7

8

9



10

11

12



13

void main (){

     


    var intSet = {1, 2, 3, 5};

     


    for (var n in intSet){

        print(n);

    }

     


    var stringSet = {"Tom", "Alice", "Kate"};

    for (var s in stringSet){

        print(s);

    }


}

To'plamlarning o'ziga xos xususiyati shundaki, ular faqat noyob qiymatlarni o'z ichiga oladi, ya'ni biz bir xil qiymatlarni to'plamga bir necha marta qo'sha olmaymiz:

1

2

3



4

5

6



7

8

9



10

void main (){

     


    var set = {1, 2, 3, 5};

    set.add(3);             // добавляем один элемент - 3

    set.addAll({4, 5});     // добавляем другой набор - {4, 5}

    for (var n in set){

        print(n);       // 1 2 3 5 4

    }


     

}


Set sinfining xossalari va usullari

To'plamlarning asosiy xususiyatlari:


birinchi: birinchi elementni qaytaradi
oxirgi: oxirgi elementni qaytaradi
uzunlik: to'plam uzunligini qaytaradi
isEmpty: agar to'plam bo'sh bo'lsa, true qiymatini qaytaradi

To'plamning asosiy usullari:


qo'shish (E qiymati): to'plamga element qo'shadi
addAll (Iterable iterable): to'plamga boshqa to'plam qo'shadi
clear (): to'plamdan barcha elementlarni olib tashlaydi
farq (Set other): joriy to‘plam va boshqa to‘plam o‘rtasidagi farqni boshqa to‘plam sifatida qaytaradi
kesishuv (Set other): joriy to‘plam va boshqa to‘plamning kesishishini boshqa to‘plam sifatida qaytaradi
olib tashlash (Ob'ekt qiymati): ob'ektni to'plamdan olib tashlaydi
removeAll (Iterable elementlari): to'plamdan elementlar to'plamining barcha elementlarini olib tashlaydi
birlashma (to'plam o'z ichiga oladi (Ob'ekt elementi): agar element to'plamda bo'lsa, rostni qaytaradi

birlashma ([String separator = ""]): to'plamdagi barcha elementlarni satrga birlashtiradi. Siz satrdagi elementlarni ajratadigan ixtiyoriy ajratuvchi parametrni belgilashingiz mumkin


o'tkazib yuborish (int count): Birinchi hisoblash elementlari mavjud bo'lmagan to'plamni qaytaradi
take (int count): Birinchi hisoblash elementlarini o'z ichiga olgan to'plamni qaytaradi
bu erda (bool testi (E element)): elementlari ba'zi shartlarga javob beradigan to'plamni qaytaradi, bu funksiya sifatida qabul qilinadi

Set sinfining maydonlari / usullari / konstruktorlarining to'liq ro'yxatini hujjatlarda topish mumkin


Ba'zi sohalar va usullarni qo'llash

1

2

3



4

5

6



7

8

9



10

11

12



13

14

15



16

17

18



19

20

21



22

23

24



25

void main (){

     


    var set = {-3, -1, 2, 4, 5, 7};

    // получим первый элемент

    print(set.first);   // -3

    // получим последний элемент

    print(set.last);    // 7

    // получим длина набора

    print(set.length);  // 6

     


    // добавим набор

    set.addAll({4, 2, 6});

     

    // соединим элементы списка в строку, разделитель запятая



    print(set.join(", "));  // -3, -1, 2, 4, 5, 7, 6

     


    // удалим число 4

    set.remove(4);

     

    print(set.join(", "));  // -3, -1, 2, 5, 7, 6




Map


Map klassi elementlar to'plamini ifodalaydi, bu erda har bir element kalit va qiymatga ega. Element kaliti va qiymati har xil turlarni ifodalashi mumkin.
Map obyektini yaratish uchun siz kalit-qiymat juftlarini joylashtirgan jingalak qavslardan {} yoki Map sinfining konstruktoridan foydalanishingiz mumkin. Xaritani yaratish imkoniyatlari:

1

2

3



4

5

6



7

8

9



10

11


var map = {

        1: "Tom",

        2: "Bob",

        3: "Sam"

};

// эквивалентное определение Map



Map map2 = {

        1: "Tom",

        2: "Bob",

        3: "Sam"

};


Bunday holda, Map ob'ektlarining ikkalasi Map - kalit tipi sifatida int va qiymat turi sifatida String turiga ega.
Jingalak qavslar kalitda uchta elementni belgilaydi: qiymat formati. Ya'ni, bu holda uchta kalit mavjud - 1, 2, 3, ular bilan uchta qiymat mos keladi - "Tom", "Bob", "Sam" satrlari.
Kalitlardan foydalanib, biz elementlarning qiymatlarini olishimiz yoki o'zgartirishimiz mumkin:

1

2

3



4

5

6



7

8

9



10

void main (){

     


    var map = {

        1: "Tom",

        2: "Bob",

        3: "Sam"

    };

    map[2] = "Alice";   // установим значение элемента с ключом 2



    print(map[2]);      // получим значение элемента с ключом 2

}


Xuddi shunday, siz turli xil turdagi kalitlar va qiymatlarga ega Map ob'ektlarini yaratishingiz mumkin. Masalan, Map obyekti (kalitlar va qiymatlar String tipidagi):

1

2

3



4

5

6



7

8

9



10

11


void main (){

     


    var countries = {

        "Spain" : "Madrid",

        "France" : "Paris",

        "Germany": "Berlin"

    };

    print(countries["Spain"]);      // Madrid



    print(countries["Germany"]);    // Berlin

    print(countries["France"]);     // Paris

}


Xarita konstruktoridan foydalanib, siz bo'sh Map ob'ektini yaratishingiz va keyin unga ob'ektlar qo'shishingiz mumkin:

1

2

3



4

5

6



7

8


void main (){

     


    var map = Map();    // пустой Map

    map[1] = "Alice";

    map[44] = "Bob";

    map[6] = "Sam";

     

}


Yangi element qo'shish juda oddiy: biz kalitni kvadrat qavs ichida ko'rsatamiz va unga qiymat beramiz (xarita [6] = "Sam";)
Xarita xususiyatlari va usullari

Asosiy xususiyatlar:

yozuvlar: barcha Xarita elementlarini ifodalovchi takrorlanadigan > obyektini qaytaradi
tugmalar: Xaritaning barcha tugmachalarini ifodalovchi takrorlanadigan obyektini qaytaradi
qiymatlar: Barcha Xarita qiymatlarini ifodalovchi takrorlanadigan obyektini qaytaradi
uzunlik: Xaritadagi elementlar sonini qaytaradi
isEmpty: Xarita bo'sh bo'lsa, true qiymatini qaytaradi

Xaritadagi har bir element aslida MapEntry ob'ektini ifodalaydi, bu erda K - tugmalar turi va V - qiymatlar turi. Bu tip ikkita xususiyatga ega: kalit (elementning kaliti) va qiymat (element qiymatini saqlaydi). Ushbu xususiyatlardan foydalanib, biz Xaritadagi elementlarning mazmunini olishimiz mumkin. Masalan, Xaritaning barcha elementlari va barcha kalitlari va qiymatlarini alohida-alohida takrorlaymiz:



1

2

3



4

5

6



7

8

9



10

11

12



13

14

15



16

17

18



19

20

21



22

23

24



25

26

27



28

void main (){

     


    var map = { 5 : "Tom"};

    map[1] = "Alice";

    map[44] = "Bob";

    map[6] = "Sam";

     

    // перебор всех элементов



    print("All items");

    for(var item in map.entries){

        // item представляет MapEntry

        print("${item.key} - ${item.value}");

    }

     


    // перебор ключей

    print("Keys");

    for(var key in map.keys){

         

        print(key);

    }


     

    // перебор значений

    print("Values");

    for(var value in map.values){

         

        print(value);

    }  

}


Konsol chiqishi:

All items

5 - Tom

1 - Alice

44 - Bob

6 - Sam
Keys

5

1

44



6
Values

Tom


Alice

Bob


Sam

Asosiy xarita usullari:


addAll (Map other): Xaritaga boshqa Map ob'ektini qo'shadi
addEntries (Iterable > newEntries): Xaritaga takrorlanadigan > toʻplamini qoʻshadi
tozalash (): Xaritadan barcha elementlarni olib tashlaydi
containKey (Ob'ekt kaliti): agar Xaritada kalit kaliti bo'lsa, true qiymatini qaytaradi
containValue (Ob'ekt qiymati): Xaritada qiymat mavjud bo'lsa, true qiymatini qaytaradi
olib tashlash (Ob'ekt kaliti): Xaritadan kalit tugmasi bo'lgan elementni olib tashlaydi
Usullarni qo'llash:

1

2

3



4

5

6



7

8

9



10

11

12



13

14

15



void main (){

     


    var map = { "Germany" : "Berlin"};

    map.addAll({"France" : "Paris", "Spain": "Madrid"});    // добавляем Map

     

    print(map.containsKey("Poland"));   // false



    print(map.containsKey("France"));   // true

     


    print(map.containsValue("Madrid")); // true

     


    // удаляем элемент с ключом "Spain"

    map.remove("Spain");

    print(map.containsKey("Spain"));    // false

    print(map.containsValue("Madrid")); // false

}



Download 387,44 Kb.

Do'stlaringiz bilan baham:
1   ...   23   24   25   26   27   28   29   30   ...   34




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