
Ekim 14, 2009 13:09 by
molks
Bugunde, önemli olduğunu düşündüğüm bu iki koleksiyon hakkındaki bilgilerimi paylaşmak isteri. Öncelikli olarak bu koleksiyonlar Lifo ve Fifo türündeki koleksiyonlardır.Bu şekilde kısaltma adlarıyla belki pek anlaşılır gelmesede üşenmeyip uzun uzun yazdığımızda ne demek istediğimiz daha net anlaşılıyor ;
Lifo ( Last in First Out) => Son Giren İlk Çıkar
Fifo ( First in First Out) => İlk Giren İlk Çıkar
.Net de lifo ya karşılık gelen koleksiyon yapısı Stack iken , ram üzerinde verilerimizi First in First Out olacak şekilde tutmak istiyorsakta Queue koleksiyonunu kullanmak işimize yarayacaktır.Peki biz ne zamanlarda bu koleksiyonları kullanmak isteriz ? Kullanım yerleri daha çok, aktarılan verilerin aktarım esnasında tüketilip ram'dan kaldırılmak istendiği durumlardır.Daha iyi anlamak için hemen aşağıdaki gibi bir form tasarlayalım ;

burada yapmak istediğim şey öncelikli olarak queue ve stack koleksiyonlarının ram de referans ettiği bölgelere çeşitli değerler atamak,bu atama işleminden sonra bu meyve ve renklerin ram de bulunup bulunmadıklarını kontrol etmek.Evet ben buradayım mesajını aldıktan sonra bu item lari listbox lara atip, bu atma eylemini gerçekleştirirkende bu itemlari ram den kaldırmak(AYNI ANDA).item'larin ramden kaldırıldıklarını ispatlamak için ise yeniden meyve ve renk butonlarına hey oradamısın ? beni duyuyormusun diyeceğiz. öyleyse hemen kodlamaya başlayalım ;

Burada enqueue methodu Queue koleksiyonuna , push methodu ise Stack koleksiyonuna değer atamak için kullanılıyor.

buradada tahmin edeceğiniz gibi elma var mi ? renk var mı ? butonlarının altlarını dolduruyoruz.Eleman sayısı 0 dan fazla ise yani kolonsiyonda eleman var ise varım diyor : )) şimdi ise en önemli kısıma geldik ;

bundan sonra sizde listbox'lara verileri atmadan önce ve sonra renk var mı? , meyve var mı? sorularını sorarak programın doğruluğunu test edebilirsiniz.
e86779fd-a726-4951-94b9-9f0533f36d48|4|4.5