Map Yapısı

CanaBBis

Yeni üye
24 Nis 2021
43
0


sb24p8.png



Merhaba değerli TürkHackTeam ailesi, bugün ki konumda sizlere Map yapısından bahsedeceğim hemen konuya geçelim


hk6hiv.png



Listelere benzeyen Map yapısı, verilerimizi anahtar/değer çiftleri şeklinde tutmamızı sağlar. Diğer bazı programlama dillerinde map yapısı, sözlük olarak adlandırılıyor. Yani tıpkı sözlükteki bir kelimenin ve karşılığının bir arada bulunması gibi, map yapısında da veriler çift olarak tutulurlar.

Aşağıdaki şekilde "Map sınıfından bir Map oluşturmak istiyorum" tarzında bir kod ile bir Map oluşturabiliyoruz. Tip belirtmek için başına Map yazabiliriz ya da var bildirimini kulanabiliriz.


Kod:
Map mapAdi = Map();

var mapAdi = Map();


Oluşturduktan sonra değer atamak için aşağıdaki yapıyı kullanıyoruz.


Kod:
mapAdi["anahtar1"] = "değer1";


Üstteki kod, mapAdi isimli Map'in içine anahtar1 isimli bir anahtar koyuyor, değer olarak da değer1'i veriyor. Eğer Map yapısı içinde anahtar1 isimli bir anahtar daha önce bulunsaydı, bu kez de değerini değiştirmiş olacaktık. Yani aynı anahtar iki kez eklenemiyor.


Örnek:

Kod:
  var mapAdi = Map();
  mapAdi["anahtar1"] = "değer1";
  mapAdi["anahtar1"] = "değer11";
  mapAdi["anahtar2"] = "değer2";
  print(mapAdi);
// {anahtar1: değer11, anahtar2: değer2}


Map'in içindeki değerlere de anahtar ismi ile erişebiliyoruz.

Kod:
print(mapAdi["anahtar1"]);

print(mapAdi["anahtar2"]);

// değer11

// değer2


ya da basitçe aşağıdaki şekilde boş bir map oluşturabiliriz. = operatöründen sonra süslü parantez açıp kapatıyoruz. Verilemizi süslü parantezlerin içerisine yazacağız.

Kod:
Map mapAdi = {};

var mapAdi = {};

Üstteki yapı ile Map değişkenimizi oluşturduğumuz anda değer ataması yapabiliyoruz. Anahtar/Değer çiftlerinin arasına : (iki nokta işareti) koyduk ve çiftleri birbirinden virgülle ayırdık.

Kod:
Map renkler = {"renk1": "kırmızı", "renk2": "mavi", "renk3": "beyaz"};


Yine içine yeni değer eklemek istersek veya var olan değerleri değiştirmek istersek, daha önce yaptığımız gibi bunu yapabiliyoruz. Bir Map farklı tipten anahtar/değer çiftleri tutabilir. Anahtar ve değer aynı tipten olmak zorunda değildir.

Kod:
Map renkler = {"renk1": "kırmızı", "renk2": "mavi", "renk3": "beyaz"};
  renkler["renk4"] = "turuncu";
  renkler["renk1"] = "kahverengi";
  renkler["renkNumarasi"] = 0123123; 
  renkler[123] = 21.3123;
  print(renkler);
// {renk1: kahverengi, renk2: mavi, renk3: beyaz, renk4: turuncu, renkNumarasi: 123123, 123: 21.3123}


Map'lerin içerisindeki bir anahtara; bir başka Map ya da Liste de değer olarak verilebilir. Aşağıdaki şekilde önce iki tane listeyi, daha sonra da bir tane map'i; renkler isimli Map'imizin anahtarlarına değer olarak verebiliyoruz:

Kod:
  Map renkler = {};
  renkler["anaRenkler"] = ["sarı", "kırmızı", "mavi"];
  renkler["araRenkler"] = ["yeşil", "turuncu", "mor"];
  renkler["karisimlar"] = {
    "KırmızıSarı": "turuncu",
    "MaviSari": "yesil",
    "KirmiziMavi": "Mor"
  };
  print(renkler);
// {anaRenkler: [sarı, kırmızı, mavi], araRenkler: [yeşil, turuncu, mor], karisimlar: {KırmızıSarı: turuncu, MaviSari: yesil, KirmiziMavi: Mor}}


Yine listelerde olduğu gibi Map'lerin de birçok metodu var. Bunlardan bazıları:

hk6hiv.png



addAll() aynı anda birden fazla veriyi Map'e eklemek için kullanılır.

Kod:
renkler.addAll({"renk12": "yeşil", "renkKod": "123123"});

clear() tüm verileri temizler.

Kod:
renkler.clear();

remove() sadece belirtilen veriyi kaldırır.

Kod:
renkler.remove('renk1');

.length Map içindeki veri çiftlerinin sayısını verir.

Kod:
print(renkler.length);

.keys sadece Map içindeki anahtarları almak istersek kullanabilir.

Kod:
print(renkler.keys);

.values sadece Map içindeki değerleri almak istersek kullanabiliriz.

Kod:
print(renkler.values);



Bir konunun daha sonuna geldik arkadaşlar.Esen kalın

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.