Select Page

Kotlin polia

Jaroslav Beňo

22/05/2020

Pole je zoskupenie jeden a viac prvkov. Na vytvorenie poľa použijeme funkciu arrayOf. Do pola môžeme dať hodnoty rôzneho typu.

val mena = arrayOf("Jaro", "Peter");
val rozne = arrayOf("Jaro", 10, Osoba("Tomas", "145878/8787"), false, "Peter");

Aj miešame typy elementov, tak tento array rozne bude nakoniec typu Array<Any>

Ak chceme zašpecifikovať napríklad int, double, float array môžeme:

javaval intCisla = intArrayOf(10,10)
val doubleCisla = doubleArrayOf(10.0,10.1)
val floatCisla = floatArrayOf(15.0f, 45.0f)  

Každý prvok poľa má index. Index slúži na presné identifikovanie prvku v poli. V poliach začíname prvky – teda indexi počítať od 0.

Ak mám pole dĺžky 10, tak má tieto indexi: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Prvý element (prvok)  má index 0.

Ak hovorím o elementoch – prvkoch, tak mám na mysli hodnotu, ktorá je uchovaná v poli na danom indexe.

idea kotlin 17

Polia majú pevne definovanú dĺžku pri inicializácii. Pole nevieme inak rozšíriť. Ak som vytvoril pole s 5 elementami, tak navždy tam bude 5 „priečinkov“ na uloženie dát.

val mena = arrayOf("Jaro", "Peter");
println(mena[0]) //vypíše Jaro
println(mena[1]) //vypíše Peter
println(mena[2]) //nastane chyba, taký index v poli nie je

Ak chcem zmeniť hodnotu na danom indexe môžem.

mena[1] = "Ferko"
println(mena[1]) //vypíše Ferko

Napríklad aj String je vlastne pole znakov. Teda je možné napríklad toto:

val jarko = "Jarko"
println(jarko[0]) //vypíše J

Čo ak chcem spojiť dva polia dokopy? Môžem za pomoci +, ale polia musia mať elementy rovnakého typu.

val mena = arrayOf("Jaro", "Peter");
val mena2 = arrayOf("Ferko", "Evka");
val spoluMena = mena + mena2

Pri poliach máme veľké množstvo pomocných funkcií a premenných ako je napríklad získanie veľkosti poľa spoluMena.size.

idea kotlin 18

Chceš zistiť, či je zoznam prázdny? Použiješ isEmpty

idea kotlin 19

Obsahuje pole element? Použiješ contains().

Do metódy arrayOf vieme podsunúť akého typu má byť, ak za metódu napíšeme typ medzi znaky <>.

val longArray = arrayOf(10L, 15L)
val longArray2 = arrayOf<Long>(10,15)

Advance array

Ak všetko v Kotlin je objekt, tak aj pole a to presne Array trieda. Teda môžeme použiť Array na zostrojenie poľa.

Chceme zostrojiť Array Intov o dĺžke 10 elementov a zároveň naplniť toto pole pomocou lambda výrazu? Lambda výraz je špeciálny typ funkcie.

val pole = Array<Int>(10){ i -> i}
for(j in pole){
    println(j)
}

Čo sa stalo? Vytvoril som nový Array Intov o dĺžke 10: Array<Int>(10) a medzi kučeravé zátvorky som napísal aký príkaz sa má vykonať i -> i. Tu som povedal, že budem mať premennú i – tá bude typu int a bude tam index a i sa posunie do kódu za šípkou kde mám teraz len i a tak sa i priradí do pola na index i. V tomto prípade sa index počíta od 0.

Ak by som chcel len párne čísla, tak viem napísať napr. toto:

val pole = Array<Int>(10){ i -> i*2 }
for(j in pole){
    println(j)
}

Vo výsledku bude na výpise:

0 2 4 6 8 10 12 14 16 18

Daným príkazom – lambda výrazom – vravím, akú hodnotu chceme priradiť na daný index. Kľudne nemusíme daný index používať.

Ak chcem pole mien, naplnených tým istým menom:

val menaArray = Array(10){ i -> "Jaro"}
for(m in menaArray){
    println(m)
}

Na výpise bude 10x meno Jaro.

Je možné vytvoriť prázdne pole, ktoré bude očakávať napríklad Int.

val nullIntPole = arrayOfNulls<Int?>(5)

Vytvorilo sa pole o dĺžke 5 a všade bude null, lebo som povedal, že chcem nullable Int. Ak ale chcem použiť nejakú metódu špecifickú pre Int, tak som obmedzený a nemôžem použiť Int funkcie, lebo kompilátor vie, že je to nullable a teda tam môže byť aj null. Použijeme safe call:

nullIntPole[0].toBigDecimal() //nie je možné
nullIntPole[0]?.toBigDecimal() //je možné  
kotlin baner

O autorovi: Jaroslav Beňo

Jaro je v skratke kresťan, manžel, otec a programátor. Na tomto webe sa venuje programovaniu. Jeho túžbou je šíriť vedomosti ďalej, aby sme mohli spolu rásť.

Pripravil viacero online video kurzov. Jeho sociálne siete:

Podobné články

Kotlin triedy a konštruktory

Trieda slúži na opis a výrobu objektov. Skúsme porozmýšľať nad reálnym objektom – napríklad auto. Ak chceme opísať auto do programu, tak na opis auta použijeme triedu. Čo má auto? Aké vlastnosti? Má počet dverí, značku, ečv, objem kufra a ďalších xy vecí. Nie...

Kotlin range

Range ako názov hovorí je rozpätie hodnôt. V tomto článku sa pozrieme na to ako Kotlin pracuje s range. Poďme sa pozrieť na príklady. Použitie v podmienke: if (i in 1..4) { // equivalent of 1 <= i && i <= 4 print(i) } Prechádzanie cez hodnoty rangu:...

Kotlin dátové typy

Java a Kotlin sú zameniteľné jazyky. Vieš ich obidva použiť v jednom programe, pretože nakoniec z nich bude .class súbor. Tým pádom typy, ktoré pozná Kotlin, pozná aj Java. Sú rozdiely, ktoré už vieš. Nevieš napísať typ int, ale vieš ho používať...

Kotlin String templates

Pri vypisovaní textu často ku textu pridávame hodnoty z premenných. Spájanie Stringov vieme spraviť pomocou + kde pospájame hodnoty a Stringy: for((i, v) in mena.withIndex()){ print("" + i + " " + v + "\n") } Kotlin ale má krajšiu cestu: for((i, v) in...

Kotlin for cyklus

Cyklus alebo loop znamená, že niečo sa opakuje xy krát. Možno prechádzame čísla od 1 do 100, alebo prechádzame cez elementy v poli alebo liste. V tomto článku sa dozvieš ako použiť for cyklus. Predstav si, že chceš vypísať čísla od 0 do 10. Použijeme for cyklus kde...

Kotlin when

Predstav si, že napíšeš aplikáciu, kde používateľ bude čítať dáta z konzoly, ak niečo zadá, tak sa má niečo vykonať, ak zadá niečo iné, tak sa vykoná niečo iné. Napríklad budeš mať aplikáciu, kde používateľ bude vyberať smer kade má ísť. Ak napíše SEVER, tak na...

Kotlin podmienky if a if else

V tomto článku sa naučíš, čo je to podmienka a ako ju požiť. Poďme na to a poďme sa naučiť Kotlin podmienky if a if else. Základom každého algoritmu je podmienka. Ak niečo, tak niečo, alebo niečo iné. Napríklad ideš kúpiť vajíčka do obchodu: Je obchod otvorený? Ak...

Kotlin porovnávanie, rozdiel medzi == a ===

V tomto článku sa oboznámiš ako je to v Kotline s porovnávaním. Dozvieš sa aký je rozdiel medzi == a ===. Poďme na to v článku Kotlin porovnávanie, rozdiel medzi == a ===. V Jave ak by som porovnal dve premenné pomocou ==, tak sa porovná ich hodnota. V Kotline je...

Kotlin premenné

V tomto článku sa dozvieš čo sú to premenné a ako fungujú v programovacom jazyku Kotlin. Premenné sú jedným zo základných pilierov pri programovaní. Musíš vedieť, ako sa vytvárajú a na čo slúžia. Poďme na to Kotlin premenné. Premenné slúžia na uchovanie informácii...

Kotlin prvý program

V tomto článku sa dozvieš ako krok za krokom napíšeš svoj prvý program v Kotline. Potrebuješ vývojové prostredie IntelliJ IDEA a ostatné sa dozvieš v článku. Vytvoríme nový Kotlin/JVM project a dáme Next. Pomenujeme projekt a zašpecifikujeme umiestnenie....

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Share This

Páčil sa ti článok? Zváž zdieľanie. Ďakujeme.