Koleksiyon Nedir?
Koleksiyonlar Set, list , queue ve map tiplerinden oluşur. Genelde veriler üzerinde işlem yapmak, aramak gibi işlemlerde kullanılırlar. Sıralı ya da sırasız olabilirler.
Bunlar java.util içerisinde bulunurlar ve kısaca bahsetmek gerekirse:
- List: İçerisinde birden fazla elemanı sıralı olarak barındırabilirler ve indis değerleriyle işlem yaparlar.
- Set: Elemanları sırasız bir biçimde tutarlar ve kopya eleman barındırmazlar (küme).
- SortedSet: Set tipinin aynısıdır farkları sıralı olmaları.
- Map: Verileri key-value şeklinde barındırır. Tekrar eden keyleri içermez. Collection arayüzünü kullanmazlar.
- Queue: Kuyruk yapısını benimsemiş bir tiptir. Liste tipinden türetilmiştir fakat indis değerleriyle işlem yapmaya izin vermez.

Not: Bu yazı Java10 sürümünde EclipsIDE üzerinden referans verilerek hazırlanmıştır.
Temel İşlemler
Sınıfların kullandıkları bazı ortak metodlar bulunmaktadır, bunlar:
.add(element:Object):boolean | Nesneye eleman ekler |
.remove(element:Object):boolean | Nesneden elemanı siler |
.size():int | Nesnedeki eleman sayısını verir |
.isEmpty():boolean | Nesnenin boş olup olmadığını döndürür |
.contains(element:Object):boolean | Nesne içerisinde belirtilen elemanı arar |
.iterator():iterator | Koleksiyon nesnesini iterasyon nesnesine referans olarak gönderir |
.clear():void | Nesneyi temizler |
HashSet
Set koleksiyon tipinin bir örneğidir. Elemanlar sırasız ve benzersizdir bunun dışında elemanlara erişim sırası belirsizdir.
Tanımlanması
HashSet<tip> nesne_adi = new HashSet<>();
Örnek
HashSet<String> strsh = new HashSet<>();
strsh.add("Doe");
Iterator
Koleksiyon nesneleri üzerinde işlemler yapmanızı sağlar.
.hasNext():boolean | Nesne içerisinde bir sonraki elemanın var olup olmadığını sorgular. |
.next():Object | Bir sonraki nesneye ulaşır. |
.remove(): void | İtere edilmiş değeri siler. |
Tanımlanması
Iterator<tip> nesne_adi = collection_object.iterator();
Örnek
Iterator<String> setIte = hSet.iterator();
Örnekler
Ekleme
Birer adet String ve Integer tipinde hashset oluşturup içerisine ekleme yapalım.
HashSet<Integer> hSetI = new HashSet<>();
HashSet<String> hSetS = new HashSet<>();
String StrAry[] = {"John", "Doe", "Test"};
for(int i = 0;i < StrAry.length; i++){
hSetI.add(i);
hSetS.add(StrAry[i]);
}
Not: İşlemleri gerçekleştirmeden önce java.util.hashet modülünü kodunuza dahil etmeyi unutmayınız.
Silme ve Temizleme
Yukarıdaki kodların devamı olarak…
for(int i = 0;i < StrAry.length; i++){
hSetS.remove(StrAry[i]);
}
hSetI.clear();
Görüntüleme veya Yazdırma
Bu işlemde Java’nın sürümleriyle ilgili olarak bir takım problemler yaşayabilirsiniz, bunun için bir kaç yöntem göstereceğim.
İlk yöntem, iterator kullanmak. İterator nesnesini diğer setlerin altına tanımlayınız.
Iterator<String> itrS = new hSetS.iterator();
while(itrS.hasNext()){
System.out.println(itrS.next());
}
İkinci yöntem
hSetS.forEach(System.out::println);
Üçüncü yöntem
hSetI.stream().forEach((hSetI) -> {
System.out.println(hSetI);
});
Evet, hashset ile ilgili en temel bilgiler bunlardır. Konuyu daha detaylı incelemek isterseniz:
bu iki bağlantı işinizi görecektir. Ekstra olarak yazıyı hazırlamakta kullandığım kaynakları da belirtmek isterim.
Bunun dışında TutorialsPoint bir programlama dili öğrenmede kullanılabilecek en iyi kaynaklardan biridir. Fakat konu Java olnuca işler biraz değişmektedir. Oracle’ın offical olarak yayınladığı Java dokümantasyonu Java programcısı olmak isteyen herkesin okuması ve uygulaması zorunlu olduğu bir kaynaktır. Piyasada bulunan çoğu Java programcısı bu dokümantasyonu bitirmiş ve güncel olarak takip etmektedir, size de tavsiyem önce bu kaynak üzerinden işe başlamanız.
Kaynakça
Kirazlı, M., & Tanrıverdioğlu, S. (2018). Java Koleksiyonları. M. Kirazlı, & S. Tanrıverdioğlu içinde, YENİ BAŞLAYANLAR İÇİN JAVA 10 (s. 501). İstanbul: Kodlab.
Singh, C. (2013, 12). HashSet Class in Java with example. beginnersbook: https://beginnersbook.com/2013/12/hashset-class-in-java-with-example/ adresinden alındı
Tutorailspoint. (tarih yok). Java – The HashSet Class. Tutorailspoint: https://www.tutorialspoint.com/java/java_hashset_class.htm adresinden alındı