Genel

Kotlin – Collections -> Map

Merhabalar,

Collections ‘ların ne olduğu ile ilgili bilgiye aşağıdaki adresten erişebilirsiniz.

Collections Dersi için tıklayın.

Kotlin ‘de bu ders mantığıyla aynı gidicektir. Fakat bir takım değişiklikler mevcut. Neler bunlar;

Kotlin ‘de 2 tür collections ‘ımız var. Read only ve Read and Write yani içerisine veri eklenemeyen sadece okunabilen Immutable ve içerisine veri eklenebilen Mutable dizileridir.


Immutable (Read Only)
1. Immutable List –> listOF
2. Immutable Map –> mapOf
3. Immutable Set –> setOf
Mutable (Read and Write)
1. Mutable List –> ArrayList, arrayListOf, mutableListOf
2. Mutable Map –> HashMap, hashMapOf, mutableMapOf
3. Mutable Set –> mutableSetOf, hashSetOf

Immutable değer değer ekleyemezsiniz. Örnek kullanımı aşağıdadır.

    //immutable Example
    var list = listOf<String>("Test1","Test2","Test3")
    //list[2]="test" --> Yapamazsın çünkü immutable. Veri eklenmez !!
    for(item in list) println(item)
    //for(item in 0..list.size -1) println(item)

Mutable için ise aşağıdaki gibidir. Değer ataması yapılabilir. ArrayListOf, mutableListOf, ArrayList üç ‘de aynıdır. Arraylist içerisine parametre almaz. Farkı budur.

//mutable Example
    var liste1 = mutableListOf<String>("Test1","Test2","Test3")
  

Gelelim Collections’larda Map ‘e. Bir takım örnekler yaptım. Hadi bu örneklerle kullanımlarını görelim.

Map < Int, String > () :

1.değer key bilgisini vermektedir. Verilere ulaşmak için bu bilgi kullanılır.
2.değer ise map te tutulacak verinin tipini belirtir. Map yapısında veriye erişmek için istenilen veri tipinde bir anahtar ifade oluşturabilirsiniz.
Key bilgisi eşsiz olmalıdır. Map te aynı olan iki anahtar ifade kullanılmaz.
Map sınıfı iki temel üzerine inşa edilmiştir :
immutable : mapOf() ile oluşturulan yapılarda sadece okuma işlemi yapılır. Bu map’ler üzerinde oynama yapılamaz.
mutable : mutableMapOf() ve hashMapOf() ile oluşturulan yapılarda ise üzerine ekleme, güncelleme ve silme işlemleri yapılabilir.

Map’te immutable mapOf() Kullanımı :

 var map1= mapOf<Int,String>(77 to "Ümit KÖSE" 55 to "Veysel AKTEKİN", 44 to "İzzet GÜVERCİN")
    // mapOf ile yapılan tanım immutable 'dır. Yani veri ekleyemezsin.!!

    // bu örnekte ise türlerini belirtmeden map tanımı yapılmıştır.
    var map2= mapOf(19.93 to true,19.97 to false, 19.95 to true)
// hashMapOf() metoduna ait özellikleri içerir.

    var map3 = mapOf<Int,String>(1 to "Ümit", 2 to "Hüseyin", 3 to "İsmail")

    for(item in map3.keys) println("Map3 değişkeni key : $item için Value değeri ${map3[item]}")

Ekleme, silme, index yoluyla silme, uzunluk bulma işlemleri, içerip içermediği, iki arrayList ‘in aynı olup olmadığı, ve foreach ile çağırılması.


fun main(args: Array<String>) {

    //mutable yapısı için hashMap, hashMapOf veya mutableMapOf kullanılır.
    var new_map= HashMap<Char,Int>()

    new_map.put('b',1993)  // put metoduyla ekleme yapıldı.
    new_map.put('g',1995)  // put metoduyla ekleme yapıldı.
    new_map.put('f',1997)  // put metoduyla ekleme yapıldı.

    //Diğer tanımlar ArrayList Example ile aynı.

    for(item in new_map.keys) println("new_map değişkeni için key $item için value değeri ${new_map[item]}")

    //item silme
    new_map.remove('b')
    //güncelleme
    new_map.replace('g', 12)

    var new_map1= mutableMapOf<Char,Int>('a' to 5, 'b' to 6) //Linked list olarak döndürüyor. Diğerlerinden farkı bu. veriler sıralı biçimde gelir.
    for(item in new_map1.keys) println("new_map1 değişkeni için key $item için value değeri ${new_map1[item]}")
    var new_map2= hashMapOf<Char,Int>('a' to 5, 'b' to 6)
    for(item in new_map2.keys) println("new_map2 değişkeni için key $item için value değeri ${new_map2[item]}")
    //var new_map3= HashMap<Char,Int>('a' to 5, 'b' to 6) Hata verir. Parametre olarak tanımlatmaz.



}

Kotlin ‘de MAP anlatımı bu kadardır. Yazıyı okuduğunuz için teşekkür ederiz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir