İlginizi Çekebilir
featured
  1. Ana Sayfa
  2. Java
  3. Java Immutable Collection Nedir?

Java Immutable Collection Nedir?

Collection yapılarının derinliklerine inerek detaylı bir rehber seti oluşturduğumu düşünüyorum. Fakat bu serinin önemli ve herkes tarafından bilinmeyen bir özelliğini sizlerle paylaşmadığımı fark ettim.

Bu yüzden bu serüvenin kilit taşı olacak Immutable (Değişmez) kavramını öğrenerek Java Immutable Collection Nedir, Nasıl Tanımlanır ve Kullanım Örnekleri gibi çeşitli konu başlıklarına yer vererek güzel bir rehber içeriği ile Collection kavramlarını tanıdığımız bu rehber setine son vermek istiyorum.

Tabii “Collection Framework” yapısı hakkında henüz bir fikriniz yoksa bu hazırlamış olduğum rehber içeriği sizler için zorlu bir süreci beraberinde getirebilir. Bu yüzden sizler için hazırladığım ve “Collection” yapılarını tanıttığım “Java Collection Nedir” isimli rehber içeriğime bu emrecelen.com.tr/java-collections-nedir/ bağlantı adresini takip ederek ulaşabilirsiniz. Böylelikle Immutable Collection kavramını daha rahat anlayabilir ve konuyu öğrenebilirsiniz.🕵🏻🎓👨🏻‍🎓👩🏻‍🎓

Kendinizi hazır hissediyorsanız bu rehber içeriğimizin ilk adımını atarak “Java Immutable Collection Nedir” sorusuna teorik olarak bir cevap verelim.

Java Immutable Collection Nedir?

Java Immutable, içerisinde yer alan koleksiyon değerlerinin değiştirilemediği, ekleme ve çıkarma gibi işlemlerin gerçekleştirilmediği ve tüm bu özellikleri sayesinde Türkçe diline “Değişmez Koleksiyonlar” olarak geçen bir yapıdır.

Immutable koleksiyon yapılarına sonradan veri eklemek ya da mevcut veri üzerinde ekleme, çıkarma gibi işlemleri gerçekleştirme esnasında hata ile karşılaşırız. Bu yüzden Değişmez, Sabit veya Immutable olarak tanımlanan bu koleksiyon yapısını kullanırken Try-Catch mekanizmasını kullanmamız gerekir.

Teorik olarak “Java Immutable Collection Nedir” sorusuna cevap verdiğimize göre artık bu rehber içeriğimizin bir sonraki aşamasına geçiş yaparak “Java Immutable Collection Kullanımı Nasıl Yapılır” sorusuna cevap arayalım.🕵🏻

Java Immutable Collection Kullanımı

Projelerimizde Immutable (Değişmez) koleksiyon yapısını kullanmak için basit bir kaç tanımlama işlemi gerçekleştirmemiz gerekiyor.

Bu tanımlama işlemlerini daha rahat anlayabilmeniz ve projelerinize immutable koleksiyonlarını dahil etmeniz için maddeler halinde atmamız gereken adımları aşağıda sizlerle paylaştım. Gelin birlikte bu maddelere göz atarak immutable collection kullanımı hakkında bilgi sahibi olalım. 👨🏻‍💻👨🏻‍🎓

  • Immutable Collection kullanımı için gerekli tanımlamayı oluşturabilmek adına List yapısını projemin ilgili sınıf dosyasına import ettim.
  • import java.util.List;

  • Import işlemini gerçekleştirdikten sonra Generic bir List yapısı tanımlayarak Collection.of() metodunu kullanarak tanımlama işlemimi gerçekleştirdim.
  • List <Integer> ogrenciNumaralari = List.of(prm1,prm2,prm3,prm4); ///---> Immutable Collection Tanımlaması <---\\\

Bu basit iki tanımlama aşamasından sonra sınıfım üzerinde değişmez koleksiyon yapısı oluşmuş olacaktır.

Değişmez koleksiyon yapılarını daha yakından tanıyabilmek adına basit birkaç örnek uygulama oluşturmak için bir sonraki aşamamız olan “Java Immutable Collection Örnekleri” başlığına geçiş yapalım.

Immutable Collection Nedir
Java Immutable Collection Yapısı

Java Immutable Collection Örnekleri

Öncelikle, immutable yani değişmez koleksiyon yapıları için yukarıdaki tanımlama sistemimiz olmasaydı ve verilerin değişmesini istemediğimiz bir koleksiyon yapısı oluşturmak isteseydik ne yapmamız gerektiğini görelim.

Böylelikle, Java içerisinde yer alan Immutable kavramının nasıl bir kolaylık sağladığını daha iyi anlayabiliriz.

Hazırsanız bu temel yapımızı oluşturacağımız, java immutable collection örnek uygulamasının aşamalarına aşağıdaki maddeler üzerinden göz atalım.

  1. Immutable yapımızın temellerini atacağımız “ImmutableExample” isminde bir sınıf oluşturdum. Fakat bu sınıfı oluştururken yapısını “final” olarak tanımladım.
  2. Sınıf yapımı oluşturduktan sonra private erişim seviyesinde final olarak tanımlanmış ve aynı zamanda generic olarak “String” verilerin eklenmesine izin veren bir List yapısı tanımladım.
  3. Bu yapıma değerlerin eklenmesini sağlamak için Constructor (kurucu) metot tanımlayarak bazı verilerin eklenmesini sağladım.
  4. Bu işlemlerden sonra oluşturmuş olduğum List yapısındaki verileri geriye döndürmek için “getImmutable” isminde bir metot tanımlayarak içerisini doldurdum.
  5. Bu işlemlerden sonra “ImmutableExample” ismindeki sınıf yapım aşağıdaki kod bloklarına sahip oldu.

    import java.util.ArrayList;
    import java.util.List;
    
    public final class ImmutableExample {
        private final List<String> fnlList = new ArrayList<>();
    
        public ImmutableExample(){
            fnlList.add("Bahtiyar");
            fnlList.add("Mete");
            fnlList.add("Oktay");
            fnlList.add("Ömer Faruk");
        }
    
        public List <String> getImmutable(){
            List <String> immutableList = new ArrayList<>();
            fnlList.forEach(item -> immutableList.add(item));
            return  immutableList;
        }
    }
    
  6. İlgili sınıfımı oluşturduktan sonra “Main” sınıfıma gelerek kurmuş olduğum yapıyı test etmek için “ImmutableExample” sınıfından bir nesne oluşturuyorum.
  7. Bu nesneyi oluşturduktan sonra öncelikle içerisindeki değerleri görmek için ekrana içerisindeki değerleri yazdırıyorum.
  8. Daha sonra yeni bir veri eklemek için gerekli komut satırını oluşturduktan sonra Liste yapımı kontrol etmek için tekrardan ekrana yazdırıyorum.
  9. Tüm bu aşamalardan sonra “Main” sınıfımın sahip olduğu komut satırları aşağıdaki halini almış oldu.

    import java.util.List;
    
    public class Main {
    
        public static void main(String[] args) {
    
            ///---> Değişken Tanımlaması <---\\\
            String ayrac = new String(new char[15]).replace("\0", "-");
    
            ///---> Java Immutable Collection Örnek #1 <---\\\
            ImmutableExample exImmutable = new ImmutableExample();
            System.out.println(ayrac+"\n< Java Immutable Collection Örneği #1 >\n"+ayrac);
            System.out.print("-> Oluşturmuş Olduğumuz Yapının Verileri: ");
            System.out.println(exImmutable.getImmutable());
    
            ///---> Yeni Veri Eklemeye Çalışalım <---\\\
            exImmutable.getImmutable().add("Emre");
    
            ///---> Verinin Eklenip Eklenmediğini Kontrol Edelim <---\\\
            System.out.print(ayrac+"\n"+"-> \"Emre\" verisini eklemeye çalışalım.\n-> Kontrol Yapalım: ");
            System.out.println(exImmutable.getImmutable());
            System.out.println("-> Gördüğünüz gibi \"Emre\" verisi eklenmemiş.\n-> Böylelikle manuel bir immutable yapı oluşturmuş olduk."+"\n"+ayrac);
        }
    }
    

Kod Çıktısı:

Java Immutable Collection Nedir
Java Immutable Collection Örnekleri #1

Gördüğünüz gibi oldukça uğraştırıcı, zahmetli ve yorucu birkaç aşamadan oluşan bir immutable collection yapısı tanımlaması oldu. Tüm bunları önlemek amacı ile ortaya çıkmış immutable metotlarını kullanarak tanımlamalarımızı çok daha rahat bir şekilde gerçekleştirebiliriz.

İsterseniz yukarıdaki örnek yapımıza sadık kalarak immutable collection metotlarını kullanarak tekrardan oluşturalım.

  1. Bu işlem için ayrı bir sınıf oluşturmamıza gerek kalmadan direkt “Main” sınıfımız üzerinde işlemlerimize başlayacağız.
  2. İlk olarak “List” yapısını “Main” sınıfımıza import ederek tanımlama aşamasına geçiş yapalım.
  3. Yapmış olduğumuz import işleminden sonra generic bir yapıda List tanımlaması gerçekleştirelim.
  4. Daha sonra oluşturmuş olduğumuz List yapısının içerisindeki verileri kontrol edelim ve daha sonra veri eklemeye çalışarak tekrardan List yapımızın içerisindeki verileri kontrol edelim.

Tüm bu aşamalardan sonra yazmış olduğum ilgili kod satırlarını aşağıdaki editör üzerinde inceleyebilirsiniz.

import java.util.List;

public class Main {
    public static void main(String[] args) {

        ///---> Değişken Tanımlaması <---\\\
        String ayrac = new String(new char[15]).replace("\0", "-");

        ///---> Java Immutable Collection Örnek #2 <---\\\
        List <String>  isimler = List.of("Emre","Mert","Mustafa","Enes");

        ///---> Eklediğimiz Verileri Ekrana Yazdıralım <---\\\
        System.out.println(ayrac+"\n< Java Immutable Collection Örneği #2 >\n"+ayrac);
        System.out.println("-> Immutable List yapısının değerleri: " + isimler+"\n"+ayrac);

        ///---> Veri ekleme ve eklediğimiz veriyi ekrana yazdırmaya çalışalım <---\\\
        try{
         isimler.add("Hakkı");
        }catch (Exception e){
            System.out.println("-> Immutable bir koleksiyon yapısına veri ekleyemezsiniz.\n-> Hata mesajınız: "+ e+"\n"+ayrac);
        }finally {
            System.out.println("-> Immutable List yapısında yer alan değerler: "+ isimler+"\n"+ayrac);
        }

    }
}

Kod Çıktısı:

Immutable Collection Örneği
Java Immutable Collection Örnekleri #2

Gördüğünüz gibi oldukça kolay ve zamandan tasarruf etmenizi sağlayan bir yapı ile java üzerinde immutable collection yapısı tanımlayabilirsiniz.

Benimle birlikte bu serüvene çıkarak “Java Immutable Collection Nedir” sorusuna cevap aradığınız ve çoğu kişinin bilmediği bir yapıyı tanımak için zaman ayırdığınız için sizlere sonsuz teşekkürlerimi sunuyorum. Eğer, konuya devam etmek ve farklı kaynaklardan “Immutable Collection” yapısını incelemek isterseniz Oracle tarafından hazırlanmış dokümantasyon içeriğini sizlere tavsiye ederim. Bahsetmiş olduğum bu içeriğe buraya tıklayarak ulaşabilirsiniz.

Unutmayın, aklınıza takılan herhangi bir soru ya da konu işleyişi ile ilgili önerileriniz veya eleştirileriniz aşağıda yer alan yorum yap kısmından bana iletebilirsiniz. 👋🏻💬👍🏻

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap