Son dönemlerde Java ve C# ile haşır neşir olmaya başladım. Tabi genel tercihim açık kaynak olması ve platform bağımsızlığı c#a göre daha iyi olması sebebi ile Java.
Fakat Java ile C# arasında çok ufak farklılıklar mevcut, ve bu farklılıklar C# lehinde basit kod yazımına yönelik (benim fark ettiklerim). Örneğin C# ile rastgele sayı oluşturmak Javaya göre daha kolay geldi.
Neyse gelelim kodlama kısmına…
Rastgele sayı üretimi (C#):
C#private int RastgeleSayi(int baslangic, int bitis)
{
Random rasgele = new Random();
return rasgele.Next(baslangic, bitis);
}
Bu şekilde artık dilediğimiz iki aralıkta rastgele sayı üretmemiz yeterli oluyor.
Örnek kod olarak iki metin kutusundan alınan değerler arsında rastgele sayı üretimi yapalım:
C#private void button1_Click(object sender, EventArgs e)
{
int baslangicsayisi = Convert.ToInt32(textBox1.Text);
int bitissayisi = Convert.ToInt32(textBox2.Text);
int[] dizi = new int[100];
for (int i = 0; i < dizi.Length; i++)
{
dizi[i] = RastgeleSayi(baslangicsayisi, bitissayisi);
}
}
Bu kod ile yukarıda tanımladığımız RastgeleSayi fonksiyonu ile baslangicsayisi ve bitissayisi aralığında 100 adet sayı üretip bu sayıları bir diziye atıyoruz.
Gelelim bu işin Java ile yapılmasına. Öncelikli olarak Javada rastgele sayı üretimi fonksiyonu yazalım:
Javaprivate static Random rn = new Random();
int[] dizi = new int[30000]; // bu tanımlamayi daha sonra kullanmak için yapıyoruz...
public static int rand(int lo, int hi)
{
int n = hi - lo + 1;
int i = rn.nextInt() % n;
if (i < 0)
i = -i;
return lo + i;
}
Artık rand() fonksiyonu ile rastgele sayı oluşturabiliriz. Gelelim bu fonksiyon ile sayı oluşturma kodlarına:
Javaprivate void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int sayi1 = Integer.parseInt(jTextField1.Text());
int sayi2 = Integer.parseInt(jTextField2.getText());
for (int i =0; i< dizi.length; i++)
{
int sayi = rand(sayi1,sayi2);
dizi[i]= sayi;
}
}
Şeklinde bir kod karşımıza çıkıyor.
Aslına bakıldığında ikinci kısımlar (rastgele sayıyı diziye aktarma) her iki dil içinde yaklaşık olarak aynı. Fakat rastgele sayı oluşturma kısımları C# ile daha kolay geldi bana. Bu noktada Java ile daha basit bir yöntem var olabilir, fakat internet taramalarım, Java ile uğraşan arkadaşların yönlendirmeleri vb araştırma sonuçlarında bu yöntemin geçerli olduğunu gördüm
…
Bunun dışında Java ve C# ile yapmaya çalıştığım bir başka iş vardı. C# ile becerebildim, fakat Java ile yapamadım. Daha sonra tekrar bakacağım. Fakat burada yapmak istediğimi anlatayım. Bir işlem yapılıyor, bu işlem uzun sürebilimekte. Ve ben işlem sürerken bir etiket üzerine “İşlem Yapılıyor…” yazdırmak istiyorum. C# ta işe başlamadan hemen önce ilgili kodu yazdığımızda, işlem bittikten sonrada aynı etikete işlemin bittiğini yazan kodu yazdığımda çalışıyor. Fakat bu mantık Java ile oturmadı
.
Javanın can sıkıcı başka bir tarafıda zamanlar(time) ile işlem yaparken milisaniye göstermesi için çeşitli fonksiyonlar vb. şeyler kullanmak gerekiyor anladığım kadarı ile. Fakat C#’ta işler çok daha basit. Şuanki zamanı alan DateTime.Now komutu ile aldığımız iki zaman arasında bulunan farkı TimeSpan kullanarak direk olarak milisaniyeleri ile birlikte alabiliyoruz.
Bu konuda daha geniş bilgisi olan arkadaşların yorumlarını ve eksik kalan noktalar konusunda bilgi vermelerini rica ediyorum….
Son yorumlar