27 Ekim 2010 Çarşamba

Scala Giriş - 2

Dersi http://www.mediafire.com/?8y61t3xky3dxevh burdan indirebilirsiniz


Listeler

Scala'da listeleri oluşturmak için bir çok yöntem var.
İlk önce Listeleri import etmemiz lazım. “ import scala.List “ ifadesiyle ekliyoruz.

val liste = List(1,2,3,4) dediğimizde liste adında ve 1,2,3,4 elamanlarından oluşan bir liste oluşturcağımızı List ifadesiyle belirtelerek oluşturmuş olduk.

val liste = List(1,2,3,4) // Birinci listemizi oluşturduk
val liste1 = List(5,6,7) // İkinci listemizi oluşturduk
val listebirlesimi = liste:::liste1 // Burda yaptığımız işlemse oluşturduğumuz iki listeyi birleştirdik.
println(listebirlesimi) // Ve oluşturduğumuz listelerden oluşan yeni liste (listebirlesimi) 'yi yazdırdık

Burda dikkat ederseniz birleştirme işlemini “ ::: “ operatörü veya metodu ile yaptık.
Çalıştırdığımızda da bize “ List(1, 2, 3, 4, 5, 6, 7) “ sonucunu döndürür.

İstersek bir listenin başına öğe ekleyerekte yeni bir liste oluşturabiliriz.

val liste = List(1,2,3,4) // listemizi oluşturduk
val liste1 = 1::liste // 1 ' i , “ :: “ operatoruyle listemize ekledik ve “ liste1 ” adlı yeni liste oluşturduk
println(liste1) // yeni listemizi yazdırdık.

Siz burda bu işlemi birden fazla öğe eklemeyi deneyerek “val liste1 = 4::7::1::liste” şeklinde deneyin.Ve ya listenin sonuna eklemeye çalışarak “val liste1 = liste::1::2” şeklinde deneyin ve sonuçları görün.

Listelerimizi “ val liste = List(1,2,3,4) “ bu şekilde oluşturuyorduk.İstersek bunu “ val liste1 = 1::2::3::4::Nil “ şeklinde de oluşturabiliriz.
Şimdi burda diceksiniz Nil ne işe yarıyor. Burda Nil boş bir liste anlamında ve listenin son elemanı sonlandırıcısı şeklinde düşünebilirsiniz.Nil ifadesini silin ve sonucu görün.

Bazı liste metodları ve kullanımı

Boş bir liste oluşturmak.
List() veya Nil

Sırasını verdiğimiz liste elemanını yazdırmak.

val liste1 = 1::2::3::4::Nil
println(liste1(3)) // Burda liste1(3) diyerek üçüncü sıradaki elemanı ekrana bas diyoruz.Fakat burda şöyle bişey var.Listelerde sıra 0 ' dan başlıyor.Yani 0 ıncı elamanın karşılığı listeden “ 1 “ oluyor.

String Listelerindeki elemanların sayısını , karakter sayısına göre bulmak

val liste = List("Cem","Can") // String tipinde listemizi oluşturduk iki elemanlı.
println(liste.count(a => a.length==3)) // Burda liste.count diyerek elemanları saycağımızı belirttik.
Fakat (a => a.length==3) ifadesiylede a adlı bi değişken oluşturup bunun karakter sayısı 3 olan elemanları bul “ a.length==3 ” diyerek count metoduna koşulumuzu belirttik.Yani burdaki işlem karakter sayısı 3 olan eleman sayısını bize ver dedik.
Siz burda 3 ü 5 yapın deneyin veya daha çok eleman ekleyip deneyin.

Sırasını belirttiğimiz elemandan itibaren elemanları yazdırmak

val liste = List("Cem","Can","Özgür","Fırat","Oguz")
println(liste.drop(1)) // 1inci sıradaki eleman Can olduğuna göre Can'dan başlıycak ve son elemana kadar olan tüm elemanları ekrana basıcak.Sırayı değiştirerek kontrol edebilirsiniz.

Bir elemanın listede olup olmadığını kontrol etmek

val liste = List("Cem","Can","Özgür","Fırat","Oguz")
println(liste.exists(a=> a == "Fırat")) //exists ifadesiyle kontrol ediyoruz ve “Fırat” ' ı kontrol ettik.Bize “true” sonucunu döndürür.

String Listelerindeki elemanları , karakter sayısına göre bulmak

Hatırlarsanız count ile elemanların sayısını buluyorduk burdaysa direkt elemanları buluyoruz.
val liste = List("Cem","Can","Özgür","Fırat","Oguz")
println(liste.filter(a=> a.length == 5 )) // filter metoduyla 5 karakterdan oluşan elemanları ekrana yazdıyoruz.

Belirlenen bir harfe göre tüm listeyi kontrol etme

Baş harfe göre kontrol etmek istersek
val liste = List("Cem","Can")
println(liste.forall(a=> a.startsWith("C"))) //forall ile hepsi için diyerek startsWith metoduylada “C”
ile başlıyor mu diye kontrol ediyoruz.Bize “true” sonucunu döndürür.Burda “C” yi “c” ile değiştirip sonucu görün.

Son harfe göre kontrol etmek istersek
val liste = List("Cem","Can")
println(liste.forall(a=> a.endsWith("m"))) // Bize “false” döndürür çünkü sadece Cem öğesi “m” ile bitiyor.

Herbir elemanı print ile yazdırmak

val liste = List("Cem","Can")
println(liste.foreach(a=> print(a)))

Bunu daha kısayoldan
val liste = List("Cem","Can")
println(liste.foreach(print)) // bu şekildede yapabiliriz Hiçbir farkı yok.

İlk elemanı yazdırmak

val liste = List("Fırat","Özgür","Oğuz")
println(liste.head)

Son eleman hariç tüm listeyi yazdırmak

val liste = List("Fırat","Özgür","Oğuz")
println(liste.init)

Son elemanı yazdırmak

val liste = List("Fırat","Özgür","Oğuz")
println(liste.last)

Listenin boş olup olmadığını kontrol etmek

val liste = List("Fırat","Özgür","Oğuz")
println(liste.isEmpty) // false cevabını döndürür

Listenin kaç elemandan oluştuğunu bulmak

val liste = List("Fırat","Özgür","Oğuz")
println(liste.length)

İlk eleman hariç tüm listeyi yazdırmak

val liste = List("Fırat","Özgür","Oğuz","Cem")
println(liste.tail)

Liste elemanlarının sırasını ters çevirerek yazdırmak

val liste = List("Fırat","Özgür","Oğuz","Cem")
println(liste.reverse) // Sonuç “ List(Cem,Oğuz,Özgür,Fırat) “ olur.

Belirlediğimiz karakter uzunluğunda olan elemanları listeden silmek

val liste = List("Fırat","Özgür","Oğuz","Cem")
println(liste.remove(a => a.length==5))

Listeyi Stringe dönüştürmek

val liste = List("Fırat","Özgür","Oğuz","Cem")
println(liste.mkString(",")) // Sonuç “ Fırat,Özgür,Oğuz,Cem “ olur.Burda yaptığımız listeyi stringe dönüştürüp aralarına virgül koymak.Siz virgülü farklı bir karakterle değiştirebilirsiniz.Mesela “ * “

Tüm elemanlara yeni bir karakter veya karakter grubu eklemek

val liste = List("Fırat","Özgür","Oğuz","Cem")
println(liste.map(a => a + "cem")) // Sonuç “ List(Fıratcem, Özgürcem, Oğuzcem, Cemcem) “ olur

Elemanları istediğimiz şekilde alfabetik olarak sıralamak

val liste = List("ahmet","Cem","oğuz","Özgür")
println(liste.sort((s,t)=> s.charAt(0).toLowerCase > t.charAt(0).toLowerCase))

Şimdi burda kafanız karışmasın.(s,t) adında değişkenlerimizi oluşturduk.Daha sonra charAt(0) demek ilk harf ve toLowerCase demeklede küçült dedik.Yani ilk harfi küçült.Sonra “ > “ dedik bu burda önemli.” > “ demek ile “ < “ demenin arasında şöyle bir fark var.Elemanları alfabe sırasına göre mi yoksa alfabe sırasının tersine göre mi sıralıcağımızı söyledik. “ > “ ile alfabe sırasının tersine göre elemanları sırala demek oluyor.Daha sonrada tekrar t.charAt(0).toLowerCase dedik.

Hiç yorum yok:

Yorum Gönder