Kotlin Massiv

Massiv deyarli barcha dasturlash tillarida eng asosiy ma'lumotlar tuzilmalaridan biridir. Massivning g'oyasi bitta o'zgaruvchi nomi ostida butun son yoki satr kabi bir xil ma'lumotlar turidagi bir nechta elementlarni saqlashdir. Massivlar dasturlashda ma'lumotlarni tartibga solish uchun ishlatiladi, shuning uchun tegishli qiymatlar to'plamini osongina saralash yoki qidirish mumkin.

Bu yerda massivlarning ba'zi asosiy xususiyatlari:

  • Ular qo'shni xotira joylarida saqlanadi.
  • Ularga o'zlarining indekslari (massiv [1], massiv [0] va boshqalar) orqali dasturiy ravishda kirish mumkin.
  • Ular o'zgaruvchan.
  • Ularning o'lchamlari qat'iy belgilangan.

Massiv ma'lumotlar tuzilishi haqida ko'proq bilish uchun Massiv o'quv qo'llanmalarini ko'rib chiqing .

Massiv yaratish

Kotlinda massivlar mahalliy ma'lumotlar turi emas, balki Array klassi tomonidan taqdim etilgan o'xshash elementlarning o'zgaruvchan to'plamidir. Kotlinda massivni aniqlashning ikki yo'li mavjud.

Funktsiyadan foydalanish arrayOf():

arrayOf() Funktsiyaga elementlarning qiymatlarini o'tkazib, massiv yaratish uchun kutubxona funksiyasidan foydalanishimiz mumkin.

Sintaksis:

val num = arrayOf(1, 2, 3, 4) // yashirin turdagi deklaratsiya
val num = arrayOf<Int>(1, 2, 3) //aniq turdagi deklaratsiya

arrayOf() va arrayOf<Int> funksiyalari yordamida massiv yaratish uchun Kotlin dasturi

fun main()
{
    val arrayname = arrayOf(1, 2, 3, 4, 5)
    for (i in 0..arrayname.size-1)
    {
        print(" "+arrayname[i])
    }
    println()
    val arrayname2 = arrayOf<Int>(10, 20, 30, 40, 50)
    for (i in 0..arrayname2.size-1)
    {
        print(" "+arrayname2[i])
    }
}
1 2 3 4 5 10 20 30 40 50

Massiv konstruktoridan foydalanish

Array Kotlindagi sinf bo'lgani uchun biz massiv yaratish uchun Array konstruktoridan ham foydalanishimiz mumkin. Konstruktor ikkita parametrni oladi:

  1. Massivning o'lchami
  2. Berilgan element indeksini qabul qiluvchi va shu elementning boshlang‘ich qiymatini qaytaruvchi funksiya.

Sintaksis:

val soni = Massiv (3, {i-> i*1})

Yuqoridagi misolda biz massiv hajmini 3 va element qiymatlarini 0 dan 9 gacha ishga tushiradigan lambda ifodasini beramiz.

Konstruktor yordamida massiv yaratish uchun Kotlin dasturi

fun main()
{
    val arrayname = Array(5, { i -> i * 1 })
    for (i in 0..arrayname.size-1)
    {
        println(arrayname[i])
    }
}
0 1 2 3 4

Bulardan tashqari, Kotlinda byteArray, intArray, shortArray va boshqalar kabi ibtidoiy ma'lumotlar turlarining massivlarini yaratish uchun o'rnatilgan zavod usullari ham mavjud. Bu sinflar Array sinfini kengaytirmaydi, ammo ular bir xil usullar va xususiyatlarni amalga oshiradilar. Masalan, butun sonli massivni yaratishning zavod usuli:

val soni = intArrayOf(1, 2, 3, 4)

Massivlarni yaratish uchun boshqa zavod usullari mavjud:

  • byteArrayOf()
  • charArrayOf()
  • shortArrayOf()
  • longArrayOf()

Massivlarga kirish va o'zgartirish

Hozirgacha biz Kotlinda massivni qanday yaratish va ishga tushirishni ko'rdik. Keling, ularga qanday kirish va o'zgartirishni ko'rib chiqaylik. Shunga qaramay, buni qilishning ikkita usuli bor:

Foydalanish get() va set() usullar

Ma'lumki, Kotlindagi massiv asosan sinfdir. Shunday qilib, biz sinf ob'ektining ma'lumotlariga uning a'zo funktsiyalari orqali kirishimiz mumkin. va funksiyalari get() a'zo set() funksiyalar deyiladi. Usul get() bitta parametrni - element indeksini oladi va ushbu indeksdagi elementning qiymatini qaytaradi.

Sintaksis:

val x = num.get(0)

Usul set() 2 ta parametrni oladi: element indeksi va kiritiladigan qiymat.

Sintaksis:

num.set(1, 3)

Yuqoridagi kod massivdagi ikkinchi elementning qiymatini 3 ga o'rnatadi

Indeks operatoridan foydalanish []

Operator [] massivlarga kirish va ularni o'zgartirish uchun ishlatilishi mumkin. Massiv elementiga kirish uchun sintaksis quyidagicha bo'ladi:

val x = son[1]

Bu nomdagi ikkinchi elementning qiymatini x ga belgilaydi. Massiv elementini o'zgartirish uchun biz quyidagilarni bajarishimiz kerak:

num[2] = 5;

Bu num massividagi uchinchi elementning qiymatini 5 ga o'zgartiradi.

Eslatma: Ichki ma'noda indeks operatori yoki [ ] aslida haddan tashqari yuklangan operatordir (operatorning haddan tashqari yuklanishiga qarang) va faqat  get() va set() a'zo funksiyalariga qo'ng'iroqlar uchun mo'ljallangan.

Bu yerda biz massiv yaratadigan, uning qiymatlarini o'zgartiradigan va ma'lum bir elementga kiradigan Kotlin massivini manipulyatsiya qilishning amaliy misoli:

fun main()
{   
    val num = arrayOf(1, 2, 3, 4, 5)  
    num.set(0, 10) 
    num.set(1, 6)     
    println(num.get(0)) 
    println(num[1]) 
}
10 6

O'tish massivlari

Massivning muhim xususiyatlaridan biri shundan iboratki, uni dasturiy yo'l bilan bosib o'tish va massivdagi har bir elementni alohida boshqarish mumkin. Kotlin massivdan o'tishning bir necha kuchli usullarini qo'llab-quvvatlaydi. Massivni kesib o'tishda eng oddiy va eng ko'p ishlatiladigan idioma for-loop dan foydalanishdir.

Sintaksis:

for (i son indekslarida){
      println(raqam[i])
  }

For loopdan foydalangan holda massivlarni o'tkazish uchun Kotlin dasturi

fun main()
{
    val num = arrayOf<Int>(1, 2, 3, 4, 5)
    num.set(0, 10)
    num.set(1, 6)
    for (i in num.indices)
    {
        println(num[i])
    }
}
10 6 3 4 5

Shu bilan bir qatorda, biz bir xil effektga erishish uchun diapazondan foydalanishimiz mumkin. Kotlinda diapazon ikki qiymat (boshlash va tugatish) orasidagi intervaldir va (..) operatori yordamida yaratilishi mumkin. Keyin diapazon bo'ylab o'tish in kalit so'zi yordamida amalga oshirilishi mumkin.

Diapazon uchun sintaksis:

for (i 0..10 da){
    println(i)
}

Massivdagi elementlar diapazoni 0 dan o'lcham-1 gacha aniqlanadi. Shunday qilib, diapazon yordamida massivni aylanib o‘tish uchun massiv nomida 0 dan o‘lcham-1 gacha bo‘lgan tsiklni bajaramiz.

Kotlin oralig'i yordamida massivlarni o'tkazish dasturi

// Traversing an array
fun main()
{
    val arrayname = arrayOf<Int>(1, 2, 3, 4, 5)
    for (i in 0..arrayname.size-1)
    {
        println(arrayname[i])
    }
}
1 2 3 4 5

Yuqoridagilarni amalga oshirishning yana bir zerikarli usuli foreach loopidan foydalanishdir .

Sintaksis:

arrayname.forEach({index->println(index)})

Foreach tsikli yordamida massivlarni o'tkazish uchun Kotlin dasturi

// Traversing an array
fun main()
{
    val arrayname = arrayOf<Int>(1, 2, 3, 4, 5)
    arrayname.forEach({ index -> println(index) })
}
1 2 3 4 5