HashSet – TreeSet Farkı

Collection‘larda en çok kullanılan Set gerçekleştirimleri olan iki sınıf HashSet – TreeSet arasındaki farklar :

  1. TreeSet eklenen verileri sıralı bir şekilde saklar. Eklenen veri tipi String ise alfabetik, Date ise kronolojik, sayısal bir tip ise küçükten büyüğe doğru sıralama yapılır. Nesneler kümeden çekilirken bu sırada döner. HashSet verileri sırasız saklar.
  2. Her iki sınıf da Set interface’ini implement ettikleri için aynı nesneler eklenmezler. Nesnelerin aynı olup olmama kontrolünü yaparken TreeSet sınıfı compareTo() metodunu kullanırken, HashSet sınıfı equals() metodunu kullanır. Dolayısıyla kullanılan sınıfa göre nesnelerin eklenme sırasındaki kontrolü farklı şekilde yapılır.
  3. HashSet’e null değer eklenebilir. Ancak bir kere eklenebilir. Birden fazla null eklendiğinde herhangi bir hata oluşmaz. Aynı nesne eklemedeki gibi ikinci null değer eklenmez, kod çalışmaya devam eder. TreeSet’e null eklenmesi sırasında NullPointerException oluşur.
  4. HashSet, TreeSet’e göre ekleme, silme ve arama gibi özelliklerde daha hızlı çalışır. Sıralama işi de olmadığı için sıra ihtiyacı olmadığı durumlarda HashSet tercih edilebilir.

 

package com.javauzmani;
 
import java.util.Iterator;
import java.util.Set;
import java.util.HashSet;
 
public class SetDeneme {
	public static void main(String[] args) {
		Set<Integer> kume = new HashSet<Integer>();
		kume.add(10);
		kume.add(33123);
		kume.add(8);
		kume.add(8);
		kume.add(31);
		kume.add(null);
		kume.add(null);
		kume.add(1233);
 
		Iterator<Integer> itr = kume.iterator();
		while (itr.hasNext()) {
                     System.out.println(itr.next());
		}
 
	}
}

hashset

package com.javauzmani;
 
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
 
public class SetDeneme {
	public static void main(String[] args) {
		Set<Integer> kume = new TreeSet<Integer>();
		kume.add(10);
		kume.add(33123);
		kume.add(8);
		kume.add(8);
		kume.add(31);
		kume.add(null);
		kume.add(null);
		kume.add(1233);
 
		for (Integer veri : kume) {
                     System.out.println(veri); 
                }
	}
}

treeset



391 defa okundu



Yorum Yazmak İstiyorum

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>