Nesneler için torbalar (Collections) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 1

Benzer belgeler
I Java Veri Yapıları 1

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

Đlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

Kılgılayan Sınıflar: AbstractMap, Attributes, HashMap, Hashtable, IdentityHashMap, RenderingHints, TreeMap, WeakHashMap

Java Koleksiyonları (Java Collections)

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Class LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util.

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

Yeni G/Ç (new I/O) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 10 1

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

ArrayList Uygulamaları

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

Java Dersi. Altuğ Bilgin Altıntaş

Class LinkedHashSet. Class LinkedHashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset java.util.

Standard Template Library

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Nesne Yönelimli Programlama

İÇİNDEKİLER VII İÇİNDEKİLER

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Class HashSet. Metotlar. Class HashSet java.lang.object java.util.abstractcollection java.util.abstractset java.util.hashset

YZM 2116 Veri Yapıları

Nesne Yönelimli Programlama

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

Yrd. Doç. Dr. Caner ÖZCAN

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

YMT219 VERİ YAPILARI ÖDEV-1

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

YZM 2116 Veri Yapıları

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

Göstericiler (Pointers)

KUYRUKLAR. Doç. Dr. Aybars UĞUR

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ArrayList(int initialcapacity) Sığası (capacity) parametrenin belirlediği sayıda olan bir dizi oluşturur.

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable

Programlama Dilleri 3

Nesne Yönelimli Programlama

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

HSancak Nesne Tabanlı Programlama I Ders Notları

Başlangıç 2. Generic İfadeler 3. Arayüzler (Interfaces) 5. LINQ ile Sık Kullanılan Arayüzler 7. Koleksiyon Sınıfları 14

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

7. HAFTA. Erişim Belirleyiciler

BAĞLAÇLI LİSTELER LINKED LISTS

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Yrd. Doç. Dr. Caner ÖZCAN

JAVADA DİZİ İŞLEMLERİ

Bilgisayar Programcılığı. Ögr. Gör. Cansu AYVAZ GÜVEN

BAĞLAÇLI LİSTELER LINKED LISTS

Java da Program Denetimi ve Operatörler

Veri Yapıları ve Algoritmalar dönem

static void dizi_24() { Random rnd = new Random(); int [] tutulan=new int[10]; int dogru;

Arasınav Örnek Soruları Bahar 2018

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

Fatura Dinamik Kodlama İyileştirmeleri

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Nesne Yönelimli Programlama

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

Pointer Kavramı. Veri Yapıları

Diziler İndisli Değişkenler

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

NESNEYE YÖNELİK PROGRAMLAMA

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Nesneye Dayalı Programlama

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

Balon & Banka Teslim tarihi: 17 Kasım 2008

İNTERNET PROGRAMCILIĞI DERSİ

Kalıtım (Inheritance)

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

Başlangıç Durumuna Getirme ve Temizlik. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

Bölüm 6. Veri Türleri ISBN

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

YZM 2116 Veri Yapıları

Koleksiyonlar (Collections)

Transkript:

Nesneler için torbalar (Collections) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 1

NESNELER İÇİN TORBALAR Torbalar birden çok nesneyi aynı çatı altında toplamak için kullanılır. Bunun faydası torba içerisinde bulunan nesnelerin daha kolay taşınmasıdır. En basit torba dizilerdir. DiziOrnekBir.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 2

Torba Sistemleri Bir uygulama yazarken çoğu zaman ne kadarlık bir verinin dizi içerisine konacağı kestirilemez. Bu probleme çözüm olarak java.util paketinin altındaki arayüzler ve sınıflar kullanılabilir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 3

Collection Arayüzü Collection arayüzüne erişen sınıfların bir kısmı kendisine gelen tüm nesneleri (aynı olsalar dahi) kabul ederken, kimisi tamamen ayrı nesneler kabul etmektedir. Yine bu arayüze erişen bazı sınıflar, içerisindeki elemanları sıralı şekilde tutarken kimisi sırasız bir şekilde tutmaktadır. CollectionTest.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 4

Detaylı Şema Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 5

Collection arayüzüne erişen diğer arayüzler ve sınıflar Detaysız Şema (Soyut sınıflar çıkartılmış) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 6

List Arayüzüne Erişen Sınıflar ArrayList Sınıfı Genel olarak List arayüzüne erişen sınıflara ait nesnelerin kullanımı basittir. List arayüzüne erişen sınıflar, aynı diziler gibi sıfırıncı indeksten başlarlar. ArrayList nesnesinin içerisine eleman atmak için add(), içerideki bir elemanı almak için ise get() yordamı kullanılır. yeniboyut=(eskiboyut*3) / 2 +1 Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 7

ArrayList Sınıfı ve Iterator Arayüzü ArrayList sınıfı denince akla hemen Iterator arayüzüne erişmiş nesneler gelir. Iterator arayüzü tipindeki nesneler gerçekten çok basit ve kullanışlıdır. Yordam İsmi boolean hasnext() Object next() void remove() Açıklama İçeride hala eleman var ise true cevabını geri döner. Bir sonraki elemanı çağırır. next() yordamı ile çağrılmış olan elemanı siler. Bu yordam next() yordamından sonra çağrılmalıdır. NufusCalismasi.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 8

Acaba Torbaya Ne Koymuştum? ArrayList nesnesinin içerisine atılan nesneleri almak için get() yordamı kullanılır. Bu yordam, içerideki nesneleri Object sınıfı tipinde bizlere geri döner. Gerçek tipi Object sınıfı tipinde olmayan bu nesnelerimizi daha sonradan aşağıya çevirim (downcasting) ile gerçek tiplerine çevirmemiz gereklidir. SuperMarket.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 9

Garantili Torbalar Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 10

LinkedList Sınıfı List arayüzüne erişen bir başka sınıf ise LinkedList sınıfıdır. Bu sınıf da aynı ArrayList sınıfı gibi nesnelerin toplu olarak taşınmasında görev alır. LinkedList sınıfının ArrayList sınıfına göre bazı gelişmiş özellikleri bulunur. LinkedListTestBir.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 11

LinkedList Sınıfı Kullanarak Yığın Yapısı Oluşturmak LinkedList sınıfı tipindeki nesneye ait olan addfirst() ve removefirst() yordamları kullanılarak veri yapılarındaki yığın yapısını tasarlamak mümkündür. (LIFO- Last in first out). Yigin.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 12

LinkedList Sınıfı ile Kuyruk Yapısı Oluşturmak Kuyruk yapılarındaki kural, içerisine atılan ilk elemanın yine ilk olarak çıkmasıdır (FIFO-First in first out). Kuyruk.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 13

Collections Sınıfı Collections sınıfının Collection arayüzü ile kalıtımsal herhangi bir bağı yoktur. Collections sınıfının içerisinde bir çok faydalı statik yordam bulunur. Bu yordamlar sayesinde Collection veya Map arayüzüne erişmiş sınıflara ait nesnelerin içerinde bulunan elemanları sıralama, arama, en büyük elemanı ve en küçük elemanı bulma, v.b. işlemleri gerçekleştirmemiz mümkün olur. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 14

Collections.sort Bir torba (ör : ArrayList nesnesi) içerisindeki elemanları küçükten büyüğe doğru sıralamak (veya tam ters sırada) için Collections sınıfına ait statik sort() yordamını kullanabiliriz. SiralamaBir.java TerstenSiralama.java NesneSiralama.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 15

Soru? Peki String veya Integer sınıf tipindeki nesnelere referansları ArrayList nesnesinin içerisine atmasak da bunun yerine kendi oluşturduğumuz ayrı bir sınıfa ait nesnenin referanslarını ArrayList nesnesinin içerisine atsak ve Collections.sort() yordamı ile sıralatmaya çalışırsak ne olur? NesneSiralama.java Kitap.java OzgunSiralama.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 16

java.lang.comparable compareto() sonuçlar. Durum yordamının döndürmesi gereken Döndürülen sonuç O anki nesne (this), parametre olarak gelen nesneden küçükse O anki nesne (this), parametre olarak gelen nesneye eşitse O anki nesne (this), parametre olarak gelen nesneden büyükse Kitap2.java O anki nesne (this), parametre olarak gelen nesneden küçükse sıfır pozitif tamsayı OzgunSiralama2.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 17

Collections.min() ve Collections.max() Torba (ör:arraylist) içerisindeki elemanların en büyüğünü ve en küçüğünü bulan Collections sınıfının statik olan max() ve min() statik yordamlarıdır. MinMaxBulma.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 18

Collections.binarySearch() Collections sınıfı içerisinde bulunan statik binarysearch() yordamı ile arama işlemleri kolaylıkla yapılabilir. binarysearch() yordamı iki adet parametre alır. 1. Birincisi arama yapılacak olan torba (ör: ArrayList)nesnesine ait referans. 2. İkincisi ise aratılan nesneye ait referans. AramaTestBir.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 19

Hangisi Daha Hızlı ArrayList Sınıfı mı, LinkedList Sınıfı mı? Şu ana kadar olan örneklerimizin bazılarında ArrayList sınıfı bazılarında ise LinkedList sınıfı kullanılmıştır. Bu iki sınıfın amacı diğer nesnelerin toplanması için torba görevi görmektir. HizTesti1.java HizTesti2.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 20

Sonuç Arama işlemlerinde ArrayList sınıfı en iyi performası verir. ArrayList sınıfı, RandomAccess arayüzüne erişir ama LinkedList erişmez ve bu yüzden Collections.binarySearch() yordamı ArrayList üzerinde en iyi performası verir. LinkedList sınıfınında iyi olduğu yerler vardır. Örneğin ters çevirme işlemi -ki bu işlem için Collections.reverse() yordamı kullanılır; Ayrıca elemanlar arasında baştan sona veya sondan başa doğru sıralama (iteration) işlemlerinde de Eleman ekleme çıkartma işlemlerinde LinkedList sınıfı kullanılır Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 21

Set Arayüzü Set arayüzü Collection arayüzünden türetilmiş. Set arayüzüne erişen sınıflara ait nesnelerin içerisine aynı elemanı iki kere atamayız. Birbirine eşit iki nesneye ait referansı, Set arayüzüne erişen bir nesnenin içerisine atamayız. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 22

Collection arayüzüne erişen diğer arayüzler ve sınıflar Detaysız Şema Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 23

HashSet Sınıfı HashSet sınıfı Set arayüzüne erişmiştir. Bunun doğal sonucu olarak da Set arayüzü içerisindeki gövdesiz yordamlara gövde yazmıştır. HashSetTestBir.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 24

TreeSet Sınıfı TreeSet sınıfı SortedSet arayüzüne erişmiştir. TreeSet sınıfına ait bir nesnenin özelliği, içerisindeki elemanları sıralı (artan sırada) bir şekilde tutmasıdır. TreeSet sınıfına ait nesnenin içerisine atılacak olan referanslara bağlı nesnelere ait sınıfların kesin olarak Comparator arayüzüne erişmiş ve bu arayüzün içerisindeki gövdesiz yordamları iptal etmeleri gerekmektedir. TreeSetTestBir.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 25

Map Arayüzü Uygulama yazarken ihtiyaç duyulan en büyük ihtiyaçlardan biri de anahtar-değer (key-value) ilişkisidir. Bu anahtar-değer ilişkisini ufak bir veritabanı gibi düşünebilirsiniz. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 26

Map arayüzüne erişen arayüz, soyut sınıflar ve sınıflar Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 27

HashMap Sınıfı HashMap sınıfı Map arayüzüne erişen sınıflarımızdan bir tanesidir. Bu sınıfın rolü, kodu yazan kişiye anahtardeğer ilişkisi oluşturabileceği bir ortam sunmaktır. HashMapTestBir.java HashMapTestIki.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 28

HashMap sınıfına ait bir nesneyi bir çok iş için kullanabiliriz. Bu tablodan Müşteri1, Müşteri2 ve Müşteri3'ün yaptıkları ödemelerin toplamını kolayca nasıl bulabiliriz? Musteri.java Kasa.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 29

Hangisi Daha Hızlı ArrayList Sınıfı mı, HashMap Sınıfı mı? ArrayList ve HashMap her ne kadar farklı yapıda olsalar da biri diğerinin yerine kullanılabilir. HizTesti3.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 30

TreeMap Sınıfı TreeMap sınıfı SortedMap arayüzüne erişir. TreeMap sınıfına ait bir nesne kullanılarak aynı HashMap sınıfına ait nesnelerde olduğu gibi anahtar-değer ilişkilerini saklamak mümkündür. TreeMap sınıfına ait bir nesne kullanmanın avantajı anahtar-değer ilişkisindeki anahtarın sıralı bir biçimde tutulmasıdır. TreeMapTestBir.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 31

Hangisi Daha Hızlı: HashMap Sınıfı mı, TreeMap Sınıfı mı? Bu sorunun cevabı şu şekilde olabilir: "anahtar-değer ilişkisindeki anahtarın sıralı olmasını istiyorsam TreeMap, aksi takdirde HashMap sınıfını kullanırım." Olaylara bu iki sınıfa ait nesnelerin içerisindeki anahtarın aratılma hızları açısından bakarsak, acaba olaylar nasıl değişir? HizTesti4.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 32

Iterator Arayüzü ve Dikkat Edilmesi Gereken Hususlar Bu arayüz tipinde bir nesne elde etmek için Collection arayüzüne erişen sınıflara ait nesnelerin iterator() yordamını çağırmak yeterlidir. Iterator arayüzüne erişen bir nesnenin kullanılmasının sebebi kolaylıktır. Iterator arayüzüne ait nesneler ilgili torbanın elemanların belli bir andaki fotoğrafını çekip daha sonradan bu elemanları başka bir yere kopyalayıp, onların üzerinde mi işlem yapıyor? IterationOrnek.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 33

Senkronize Torbalar Şu ana kadar incelediğimiz sınıflara ait nesnelerin hiç biri senkronize değildi. Bunun anlamı bu nesnelere (ArrayList, LinkedList, HashSet, HashMap...) aynı anda iki veya daha fazla sayıdaki iş parçacığının(threads) erişip istedikleri eklemeyi veya silme işlemini yapabileceğidir. SenkronizeListTestBir.java SenkronizeListTestIki.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 34

Sorular... Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 35