Merhaba arkadaşlar, bu yazımda HashMap ve HashTable arasındaki farkları anlatacağım. HashMap ve HashTable, Java’da collectionlar içerisinde yer alan veri yapılarıdır.
İkiside key–value olarak veri saklarlar ve java.util.Map interfacesini uygularlar. İkiside kullanım açısından aynıdırlar ancak aralarında ciddi farklılıklar da bulunur.
HashTable ve HashMap Arasındaki Farklar
HashMap |
HashTable |
HashMap senkronize değildir. Threadlar için güvenli değildir ve uygun senkronize kodu olmadan birçok thread arasında paylaşılamaz. | HashTable senkronizedir. Thread açısından güvenlidir ve birçok thread ile paylaşılabilir. |
HashMap bir adet null keyine ve birden fazla null value ya izin verir. | HashTable null key veya value ya izin vermez. |
HashMap, JDK 1.2 ile yeni class olarak tanıtıldı. | HashTable, eski bir classtır. |
HashMap hızlıdır. | HashTable yavaştır. |
HashMap’i aşağıdaki kod ile senkronize hale getirebiliriz. Map map = Collections.synchronizedMap(hashMap); | HashTable kendiliğinden senkronize edilir. |
HashMap, Iterator tarafından geçilir. | HashTable, Enumerator ve Iterator tarafından geçilir. |
HashMap, AbstractMap classını miras alır. | HashTable, Dictionary classını miras alır. |
Bu yazımda HashTable ve HashMap arasındaki farkları anlattım. Diğer yazılarda görüşmek üzere.