Java Koleksiyonlara Giriş, Yaygın Koleksiyon Metodları
Koleksiyon tek bir nesnede bulunan nesneler topluluğudur. Java Collections Framework, koleksiyonları depolamak için java.util’de bulunan bir sınıf kümesidir. Java Collections Framework’de dört ana interface bulunmaktadır. Bunlar kısaca aşağıdaki gibidir:
List: Yinelen girişlere izin veren bir sıralı öğe koleksiyonudur. Listedeki ögelere int tipteki bir index ile erişilir.
Set: Yinelenen girişlere izin verilmeyen bir koleksiyondur.
Quene : Öğeleri ilk giren ilk çıkar (FIFO) mantığıyla depolayan koleksiyondur.
Map : Bir mapteki öğeler key/value çiftleridir. Anahtarları(key) değerlerle ( value) ile eşleştiren ve yinelenen anahtarlara izin vermeyen bir koleksiyon çeşididir.
Yaygın Kullanılan Collection Metotları
add()
Collectiona yeni bir eleman ekler ve başarılı olup olmadığını döndürür. Aşağıdaki örnekte set collectionuna aynı veri eklenemeyeceği için ikinci eklemede false döndürdü.
Collection<String> list = new ArrayList<>(); System.out.println(list.add("Karga")); //true System.out.println(list.add("Karga")); //true Collection<String> set = new HashSet<>(); System.out.println(set.add("Karga")); //true System.out.println(set.add("Karga")); //false
remove()
Koleksiyonda eşleşen değerlerden sadece birini siler. Aşağıdaki örnekte; listede bulunmayan değer false döndürdü. Listede bulunan Kargayı silmek istediğimizde sadece birini sildi.
Collection<String> list = new ArrayList<>(); System.out.println(list.add("Karga")); //true System.out.println(list.add("Karga")); //true Collection<String> set = new HashSet<>(); System.out.println(set.add("Karga")); //true System.out.println(set.add("Karga")); //false
Bir döngü kullanarak remove() metodunu kullanamayız. Java exception fırlatacaktır.
Collection<String> list = new ArrayList<>(); list.add("Karga"); list.add("Karga"); list.add("Karga"); list.add("Karga"); for(String kus : list) list.remove(kus); //java.util.ConcurrentModificationException }
isEmpty() ve size()
Koleksiyonda kaç eleman olduğunu bulmak için kullanılır. isEmpty() boolean değer döndürür, koleksiyonun boş olup olmadığını bulmak için kullanılır. size () ise int değer döndürür, koleksiyonun eleman sayısını bulmak için kullanılır.
Collection<String> list = new ArrayList<>(); System.out.println(list.isEmpty()); //true System.out.println(list.size()); //0 list.add("Karga"); list.add("Karga"); System.out.println(list.isEmpty()); //false System.out.println(list.size()); //2
clear()
Koleksiyondaki tüm elemanları silmek için kullanılır.
Collection<String> list = new ArrayList<>(); list.add("Karga"); list.add("Karga"); System.out.println(list.size()); //2 list.clear(); //Koleksiyon boş System.out.println(list.size()); //0
contains()
Koleksiyonda bir değerin olup olmadığını kontrol eder. Dönüş tipi booleandır.
Collection<String> list = new ArrayList<>(); list.add("Karga"); list.add("Karga"); System.out.println(list.contains("Karga")); //true System.out.println(list.contains("serce")); //false
removeIf()
Koleksiyonda bir koşulla eşleşen tüm öğeleri kaldırır. Aşağıdaki predicate örneğinde K ile başlayan ögeleri koleksiyondan kaldırır.
Collection<String> list = new ArrayList<>(); list.add("Karga"); list.add("Serçe"); System.out.println(list); //{Karga,Serçe] list.removeIf(s->s.startsWith("K")); System.out.println(list); //Serçe
forEach()
Koleksiyonlarda döngü oluşturmamızı sağlar. Dönüş tipi voiddir.
Collection<String> list = new ArrayList<>(); list.add("Karga"); list.add("Serçe"); list.forEach(s->System.out.println(s)); //Karga Serçe