Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
Collections etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Collections etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Mart 2013 Perşembe

Java'da Comparable ve Comparator ile kıyaslayarak sıralama


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

class A implements Comparable<A>
{
 public int a;
 public String b;

 public A(int _a, String _b) {
  a = _a;
  b = _b;
 }

 @Override
 public int compareTo(A _kiyaslanan)
 {
  return this.a - _kiyaslanan.a;
 }

 @Override
 public String toString()
 {
  return a + ":" + b;
 }
}




public class test
{
 public static void main(String[] args)
 {
  A a = new A(10, "on");
  A b = new A(9, "dokuz");
  A c = new A(8, "sekiz");
  A d = new A(7, "yedi");
  A e = new A(6, "altı");




  final List list = new ArrayList<A>();
  list.add(a);
  list.add(c);
  list.add(b);
  list.add(e);
  list.add(d);




  System.out.println("// Kendi compareTo metoduyla sıralama");
  Collections.sort(list);
  yaz(list);
  System.out.println("// İnterface olarak eklenen compareTo metoduyla sıralama");
  Collections.sort(list, new Comparator<A>() {
   @Override
   public int compare(A a2, A a1)
   {
    // b, String tipinde ve String sınıfının compareTo metoduna göre
    // sıralama
    return a2.b.compareTo(a1.b);
   }
  });
  yaz(list);
 }




 public static void yaz(List list)
 {
  for (int i = 0; i < list.size(); i++)
  {
   System.out.println(list.get(i));
  }
 }
}

11 Ekim 2009 Pazar

Java'da Kolleksiyonlar






package collections;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Vector;

public class Main {

public static void main(String[] args) {
HashMap hmap = new HashMap();
hmap.put(21, "0333154");
hmap.put(2, "433154");
hmap.put(4, "33154");
hmap.put(5, "75154");
hmap.put(21, "5675154");


}

public static void fVector() {
Vector vc = new Vector();
vc.add("Ankara");
vc.add("Zonguldak");
vc.add("Izmir");
vc.add("Ankara");

System.out.println(vc); //[Ankara, Zonguldak, Izmir, Ankara]
// Ankara yı iki kez girebildik (DUPLICATE olabildi)
// ve sıralama yapmadı.
// Vector ler LIST tir diyebiliriz.

Enumeration enm = vc.elements();
while (enm.hasMoreElements()) {
System.out.println(enm.nextElement());
}
}

private static void fHashMap() {
HashMap hmap = new HashMap();
hmap.put(21, "0333154");
hmap.put(2, "433154");
hmap.put(4, "33154");
hmap.put(5, "75154");
hmap.put(21, "5675154");
if (!hmap.containsKey(2)) {
hmap.put(2, "556665545");
}
Iterator itr = hmap.keySet().iterator();
while (itr.hasNext()) {
int key = (Integer) itr.next();
System.out.println("Key: " + key + " Value: " + hmap.get(key));
}
/**
Key: 2 Value: 433154
Key: 4 Value: 33154
Key: 21 Value: 5675154
Key: 5 Value: 75154
1-> Sıralamadığı için SET olduğunu anlayabiliyoruz.
2-> 21 keyini tekrar 5675154 değeri ile eklemedi.
3-> ContainsKey ile varlığını kontrol edebiliyoruz.
**/
}

private static void fHashSet() {
HashSet hs = new HashSet();
hs.add(21);
hs.add(6);
hs.add(1);
hs.add(3);
hs.add(9);


Iterator itr = hs.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
/* Sonuç:
1
3
21
6
9
**/
}
}

14 Ekim 2007 Pazar

.NET NameSpace lerinden...

.NET Class Framework için üst yapıya “namespace” (ad uzayı) adı verilir. Bu ad uzaylarından önemli olan bazılarının işlevselliği şöyle sıralanabilir :

Microsoft.CSharp
C# dilini kullanarak derleme ve kod üretimini destekleyen sınıfları içerir.

Microsoft.JScript
Jscript dilini kullanarak derleme ve kod üretimini destekleyen JScript runtime ve sınıflarını içerir.

Microsoft.VisualBasic
Visual Basic .NET runtime’ı içerir. Bu runtime Visual Basic .NET dili tarafından kullanılır. Bu ad uzayı, aynı zamanda Visual Basic .NET dili için derleme ve kod üretimi ile ilgili sınıfları da içerir.

Microsoft.Vsa
.NET Framework için, runtime’da kullanılmak üzere script motorlarını (script engines) uygulamalara script gömmeyi sağlayan ara yüzleri içerir.

Microsoft.Win32
İki tip sınıf sunar: işletim sistemince üretilen olayları işleyenler ve sistem kayıtlanmasını (system registry) işleyenler.

System
Ortak kullanıma sahip değerleri, referans edilen veri tiplerini, olayları ve bunların işleyicilerini, ara yüzleri, özellikleri ve işlem hatalarını tanımlayan temel sınıfları içerir. Sistem tipleri ve derleyici tarafından otomatik olarak sunulan Object sınıfını içerir.

System.CodeDom
System.CodeDom.Compiler
System.Collections
Çeşitli nesne koleksiyonlarını tanımlayan ara yüz ve sınfları içerir (list, queue, bit array, hash table ve dictionary gibi).

System.Collections.Specialized
System.ComponentModel
System.ComponentModel.Design
System.ComponentModel.Design.Serialization
System.Configuration
Program içinden .NET Framework konfigürasyon ayarlarına erişim sağlayan ara yüz ve sınıfları içerir.

System.Configuration.Assemblies
Bir assembly konfigürasyonunu değiştirmeyi sağlayan sınıfları içerir.

System.Configuration.Install
System.Data
Çoğunlukla, ADO.NET mimarisinin temelini içeren sınıflardan oluşur. ADO.NET mimarisi çoklu veri kaynaklarından gelen veriyi etkin bir şekilde yöneten bileşenlerin gerçekleştirimini sağlar. Bağlantısız bir ortamda (Internet gibi), ADO.NET çok katmanlı sistemler için veri istemi, ekleme ya da günleme gibi işlemlere ait araçları sunar. ADO.NET mimarisi aynı zamanda, Windows Forms veya ASP.NET ile yaratılmış HTML sayfaları gibi, istemci uygulamalarında da gerçekleştirilir.

System.Data.Common
System.Data.OleDb
OLE DB .NET Data Provider’ı içerir. Bir .NET veri sağlayıcısı yönetimli uzayda, veritabanı gibi, veri kaynaklarına erişim için bir sınıflar koleksiyonu tanımlar.

System.Data.SqlClient
SQL Server .NET Data Provider’ı içerir. Bir .NET veri sağlayıcısı yönetimli uzayda, veritabanı gibi, veri kaynaklarına erişim için bir sınıflar koleksiyonu tanımlar.

System.Data.SqlTypes
SQL Server içindeki veri tipleri için sınıfları tanımlar. Bu sınıflar, diğer alternatif veri tiplerine göre daha güvenli ve hızlıdır. Bu sınıfların kullanılmasıyla, olası tip dönüşümü problemlerinin de önüne geçilmektedir.

System.Diagnostics
Sistem süreçleri, olay logları ve performans sayaçları ile etkileşim için gerekli sınfları sağlar. Bu ad uzayı aynı zamanda kodun adım adım işletimi ya da hata ayıklama için sınıflara da sahiptir.

System.Diagnostics.SymbolStore
System.DirectoryServices
System.Drawing
GDI+ temel grafik işlevselliğine erişim sağlar.

System.Drawing.Design
System.Drawing.Drawing2D
System.Drawing.Imaging
İleri düzey GDI+ görüntüleme işlevselliğini sağlar.

System.Drawing.Printing
Yazdırma işlemleriyle ilgili sevisler sağlar.

System.Drawing.Text
System.EnterpriseServices
Kurumsal uygulamalar için önemli bir alt yapı sağlar. Kurumsal bir ortamda bileşen programlama modeli için COM+ servis mimarisi sağlar. Bu ad uzayı .NET Framework nesnelerini kurumsal uygulamalar için daha pratik hale getirir.

System.EnterpriseServices.CompensatingResourceManager
System.Globalization
Kültürel bilgiyi tanımlayan sınıfları içerir (dil, ülke/bölge, kullanımdaki takvim, tarih, para birimi ve sayıların kullanımıyla ilgili bilgi vb.).

System.IO
Akımlar ve dosyalar üzerinden, senkron ve asenkron okuma ve yazmayı sağlayan tipleri içerir.

System.IO.IsolatedStorage
System.Management
System.Management.Instrumentation
System.Messaging
System.Net
Günümüz bilgisayar ağlarında kullanılan birçok protokol için basit ve programlanabilir bir ara yüz sağlar. “WebRequest” ve “WebResponse” sınıfları “pluggable protocols” (her protokolün özel ayrıntılarıyla ilgilenmeden , Internet kaynaklarını kullanan uygulamalar için ağ servisleri geliştirimi) için temel oluşturur.

System.Net.Sockets
Ağ erişimi için sıkı bir kontrole ihtiyaç duyan geliştiriciler için, Windows Sockets (Winsock) arayüzüne yönetimli bir gerçekleştirim sağlar.

System.Reflection
System.Reflection.Emit
System.Resources
System.Runtime.CompilerServices
System.Runtime.InteropServices
System.Runtime.InteropServices.Expando
System.Runtime.Remoting
Dağıtık uygulamalar yaratmak için gereken sınıf ve ara yüzleri içerir.

System.Runtime.Remoting.Activation
System.Runtime.Remoting.Channels
Uzaktaki bir nesnenin bir metodunun bir istemci tarafından çağrımında kullanılan ulaştırma ortamı olan kanal ve kanal havuzlarını işleyen ve destekleyen sınıfları içerir.

System.Runtime.Remoting.Channels.Http
HTTP protokolünü kullanan kanalları içerir.

System.Runtime.Remoting.Channels.Tcp
TCP protokolünü kullanan kanalları içerir.

System.Runtime.Remoting.Contexts
System.Runtime.Remoting.Lifetime
System.Runtime.Remoting.Messaging
System.Runtime.Remoting.Metadata
System.Runtime.Remoting.Metadata.W3cXsd2001
System.Runtime.Remoting.MetadataServices
System.Runtime.Remoting.Proxies
System.Runtime.Remoting.Services
System.Runtime.Serialization
System.Runtime.Serialization.Formatters
System.Runtime.Serialization.Formatters.Binary
System.Runtime.Serialization.Formatters.Soap
System.Security
İzinler için temel sınıfları da içeren, “Common Language Runtime” güvenlik sisteminin altında yatan yapıyı sağlar.

System.Security.Cryptography
Birçok başka işlemle birlikte (hashing, şansa dayalı sayı üretimi gibi) güvenli “encoding” ve “decoding” içeren “kriptografi servisleri” sağlar.

System.Security.Cryptography.X509Certificates
System.Security.Cryptography.Xml
System.Security.Permissions
Politikaya bağlı olarak işlemlere ve kaynaklara erişimi kontrol eden sınıfları tanımlar.

System.Security.Policy
System.Security.Principal
System.ServiceProcess
Windows servis uygulamaları gerçekleştirmeyi, yüklemeyi ve denetlemeyi sağlayan sınıfları sağlar.

System.Text
ASCII, Unicode, UTF-7 ve UTF-8 character encoding’i temsil eden sınıfları içerir.

System.Text.RegularExpressions
“.NET Framework regular expression engine” için erişim sağlayan sınıfları içerir. Bu ad uzayı Microsoft .NET Framework ile çalışabilen her dil ya da platformdan kullanılabilen “regular expression” işlevselliği sağlar.

System.Threading
Çoklu iş parçacıkları programlamayı sağlayan sınıf ve ara yüzleri içerir.

System.Timers
Belli bir aralıkta olay tetiklemeyi sağlayan Timer bileşenini sağlar.

System.Web
İstemci/sunucu iletişimini sağlayan sınıf ve arayüzleri sağlar. Bu ad uzayı o anki http istemiyle ilgili bilgi içeren “HTTPRequest” sınıfını, istemciye giden çıktıyı yöneten “HTTPResponse” sınıfını ve sunucu taraflı süreçler için erişim sağlayan “HTTPServerUtility” nesnesini içerir. “System.Web” aynı zamanda cookie işleme, dosya transferi, istisna bilgisi (exception information) ve çıktı ön bellekleme denetimini de içerir.
System.Web.Caching
Sunucudaki kaynaklardan en sık kullanılanları ön belleğe almayı sağlayan sınıfları içerir.
System.Web.Configuration
System.Web.Hosting
System.Web.Mail
CDOSYS mesaj bileşenini kullanarak, mesaj oluşturma ve gönderebilmeyi sağlayan sınıfları içerir. Posta mesajı Microsoft Windows 2000’de kurulu bulunan SMTP mail servisi ile ya da herhangi bir sıradan SMTP sunucusu üzerinden gönderilir. Bu ad uzayı içindeki sınıflar ASP.NET ya da herhangi bir yönetimli uygulama içinden kullanılabilir.

System.Web.Security
Web sunucu uygulamalarında ASP.NET güvenliğinin gerçekleştirimi için kullanılan sınıfları içerir.

System.Web.Services
Web servislerinin oluşturulması ve kullanımı için gereken sınıfları içerir. Bir web servisi, web sunucusu üzerinde bulunan ve standart Internet protokolleri üzerinden dışa açılan programlanabilir birimlerdir.

System.Web.Services.Configuration
System.Web.Services.Description
System.Web.Services.Discovery
System.Web.Services.Protocols
System.Web.SessionState
Sunucudaki bir web uygulaması içinde tek bir istemciye özel verinin tutulmasını sağlayan ara yüz ve sınıfları sağlar. Oturum durum verisi (SessionState), kullanıcıya uygulamayla sürekli bir bağlantı varmış hissinin verilmesi için kullanılır. Durum bilgisi yerel süreç belleğinde veya “Web farm” konfigürasyonlarında ASP.NET State Service veya bir SQL Server veritabanı ile süreç dışı olarak bulunabilir.

System.Web.UI
Bir web sayfası üzerinde kullanıcı ara yüzünü oluşturan kontrollerin yaratılması için gereken sınıf ve ara yüzleri sağlar. Bu ad uzayı, ortak bir işlevsellikle HTML ya da web kullanıcı kontrolleri olmak üzere tüm kontrolleri içeren “Control” sınıfına sahiptir. Web uygulamasındaki bir sayfaya istem olduğu anda oluşturulan, “Page” kontrolünü de içerir.

System.Web.UI.Design
System.Web.UI.Design.WebControls
System.Web.UI.HtmlControls
Bir web sayfası üzerinde HTML sunucu kontrolleri yaratmayı sağlayan sınıfları sağlar. HTML sunucu kontrolleri sunucuda çalışır ve her tarayıcı tarafından desteklenen standart HTML tag’leriyle temsil edilirler. Bu durum, bir web sayfasındaki HTML elemanlarının program içinden kontrol edilebilirliğini sağlar.

System.Web.UI.WebControls
Bir web sayfası üzerinde web sunucusu kontrolleri yaratabilmeyi sağlayan sınıfları içerir. Web kontrolleri sunucuda çalışırlar ve “calendar” gibi özel amaçlı kontrollerle beraber düğme ve metin kutusu gibi form kontrollerini içerirler. Bu, web sayfası üzerindeki kontrollere program içinden erişebilmeyi sağlar. Web kontrolleri HTML kontrollerinden daha soyuttur. Nesne modelleri HTML sözdizimini yansıtmaz.

System.Windows.Forms
Windows tabanlı, Microsoft Windows işletim sisteminin sahip olduğu zengin kullanıcı ara yüzü olanaklarını kullanan uygulamaları yaratabilmek için gereken sınıfları içerir.

System.Windows.Forms.Design

System.Xml

XML işleme dili için standartlara dayalı destek sağlar.
System.Xml.Schema
Standartlara dayalı XML Schema’ları (XSD) için destek sağlar.
System.Xml.Serialization
XML biçiminde döküman ya da akımlara nesnelerin belli andaki halinin saklanmasını sağlayan sınıfları içerir.
System.Xml.XPath
XPath ayrıştırıcısı ve değerlendirme motorunu içerir. “W3C XML Path Language (XPath) Version 1.0 Recommendation” (www.w3.org/TR/xpath)’ı destekler.
System.Xml.Xsl
“Extensible Stylesheet Transformation” (XSLT) için destek sağlar. W3C XSL Transformations (XSLT) Version 1.0 Recommendation (www.w3.org/TR/xslt)’ı destekler.



System.Object Sınıfı:
Tüm .NET yönetimli sınıflar System.Object sınıfından kalıtımla gerçekleştirilir. Bu kalıtım VB ve C# gibi dillerde derleyici tarafından otomatik olarak gerçekleştirilir. Ayrıca Object sınıfı hiyerarşinin en üstünde yer aldığından, bu tipteki bir değişkene diğer nesne referansları atanabilir. Object sınıfı diğer tüm sınıflar için de kalıtımla ortak hale gelen şu metodları içerir :

Object:
Equals(), GetHashCode(), MemberwiseClone(), Finalize(), GetType() , ToString()



System.Exception Sınıfı Ve Hata Yönetimi :
İstisnalar ile .NET Framework tutarlı bir hata yönetimi sağlar. Hata oluşabilecek noktalarda (IO işlemleri gibi..) “try” ve “catch” anahtar sözcükleri yardımıyla istisnanın oluşması durumunda ne yapılması gerektiği belirlenir.

Öncelikle, hataya sebep olabilecek kod “try” bloğu içine yazılır ve hatanın oluşması durumunda yürütülmesi istenen kod “catch” bloğu içine yazılır.


try
{
//hataya sebep olabilecek kod
}
catch(Exception e)
{
//hata yönetim kodu
}


Örnek kodda “catch” bloğunda “e” ile tanımlanan değişken sayesinde kodun işletiminde eğer bir hata varsa bu hatanın içeriği hakkında bilgi edinmeyi sağlar.

Herhangi bir işlem için yazılan kodda belli bir durum için istisna oluşması isteniyorsa bu durumda da, “throw” anahtar sözcüğü sayesinde istisna oluşması sağlanabilir.

Ayrıca hata oluşması ya da oluşmaması durumlarından bağımsız olarak belli bir kodun (her iki durumda da) işletilmesi isteniyorsa “finally” anahtar sözcüğü kullanılır ve gereken kod “finally” bloğunda gerçekleştirilir.



System.Collectionsı ve koleksiyonların kullanımı:
Koleksiyon kullanımı için en iyi örnek ArrayList olabilir.


//Öncelikle bir ArrayList nesnesi yaratalım
ArrayList ornek = new ArrayList();


ArrayList için önemli işlemler koleksiyona elemen ekleme, koleksiyondan eleman silme ve koleksiyon içindeki belli bir elemana erişmedir.


//Ekleme için
ornek.Add(“ilk eleman”);
ornek.Add(2);

//Silme için
ornek.Remove(“ilk eleman”);
ornek.RemoveAt(0);


Ve elemanlara erişim :

ornek[0] şeklinde indekse göre referasla gerçekleştririlir.

Burada dikkat edilmesi gereken, ArrayList içindeki elemanların Object şeklinde tutulmasıdır. Bunun anlamı ArrayList içindeki elemanlara erişimde, erişilecek olan elemanın tipine “cast” işlemi gerçekleştirilmelidir.


OrnekSinif ornekNesne=new OrnekSinif ();
ornek.Add(ornekNesne);
//bu objeyi tekrar elde etmek için
OrnekSinif ornekNesneYeni=((OrnekSinif)ornek[0]);


Kaynak: sorucevap.com