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:
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]);
// соединим элементы списка в строку, разделитель запятая
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