Dart’da Bir Liste, Bir Map’e Nasıl Dönüştürülür?

Merhaba, daha önceki yazılarımızda bu işlemi C# ile yapmaktan bahsetmiştik. Bu yazıda ise aynı işlemi Dart programlama dilinde nasıl yapacağımızı anlatacağım. 

C# örneğine buraya tıklayarak ulaşabilirsiniz.

İlk olarak bir liste oluşturarak başlayalım. Diyelim ki elimizde integer değerlerin olduğu bir liste var ve bu liste içerisinde aynı integer değerden 1 den fazla olabilir. Program akışında bu şekildeki bir listenin Map’e dönüştürülmüş hali gerekebilir. Bu şekilde her değerin liste içerisinde kaç adet bulunduğuna akışta daha kolay bir şekilde ulaşabiliriz. Aynı zamanda bazı işlemler için bu Map’i kullanmak programcıya bir esneklik sunacaktır. 

Listemiz;

var sayilar = {1,1,1,2,3,4,2,2,2,5,5,3,2,1,5,6,7,8,4,4,5,6,1};

Yukarıdaki listeyi bir kaç yöntemle Map’e dönüştürebiliriz.

1.Yöntem

var map = {};
sayilar.forEach((sayi) {
   if(!map.containsKey(sayi)) {
     map[sayi] = 1;
   } else {
     map[sayi] +=1;
   }
});

2. Yöntem

var map = {};
sayilar.forEach((e) => map.update(e, (x) => x + 1, ifAbsent: () => 1));

3. Yöntem

sayilar.forEach((x) => map[x] = !map.containsKey(x) ? (1) : (map[x] + 1));

Yukarıdaki 3 farklı yöntem ile bir dizi içerisindeki elemanları [Key, Value] ikilileri şeklinde bir map e aktardık. Bu notasyon ile Key sayının değerini Value ise o sayının liste içerisinde kaç adet bulunduğunu gösterecek. Aşağıdaki şekilde ise bu değerlere erişerek kullanabilirsiniz:

for (var item in map.entries) {
   print(item.key + "-" + item.value);
}

Leave a Reply

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