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



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

ArrayList Uygulamaları

Class Vector. Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector. Kılgıladığı arayüzler:

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

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

Đ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:

I Java Veri Yapıları 1

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

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

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

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

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

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

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

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

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

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007)

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

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

Java Koleksiyonları (Java Collections)

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

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

Insertion Sort. (Sokuşturma Sıralaması)

NESNEYE DAYALI PROGRAMLAMA 11. HAFTA UYGULAMA DERSİ

YMT219 VERİ YAPILARI ÖDEV-1

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

Programlama Dilleri 3

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

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

Mantıksal İşlemler. 7.1 true, false, nil

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

Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

HASH(KARMA) TABLOSU VERİ YAPISI

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

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları

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

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Mantıksal (Logic) Operatörler

YZM 2116 Veri Yapıları

İ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İ

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

Veri Yapıları ve Algoritmalar dönem

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

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Java Programlama. Diziler, Döngüler ve Karakter Katarları (String Sınıfı)

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

// hataları işaret eden referans

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Görsel Programlama (Visual Programming)

Nesneye Dayalı Programlama

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

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

19 Şubat 2016 Cuma

(Sözlük, dictionary, birleşik array, map)

Nesne Tabanlı Programlama

Lecture 11: Generics

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

NESNEYE YÖNELİK PROGRAMLAMA

Şablon Türler (Generics)

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

BAĞLAÇLI LİSTELER LINKED LISTS

public class SalesLineItem // Java { private int quantity; private ProductSpecification description; public Money getsubtotal() {...

BİL132 Bilgisayar Programlama II

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

Ders 8: Metotlar. barisgokce.com

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Java Programlamada Paket Yapısı Ve Import

İ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İ

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

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

BİL-141 Bilgisayar Programlama I (Java)

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

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

BAĞLAÇLI LİSTELER LINKED LISTS

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

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Koleksiyonlar (Collections)

HSancak Nesne Tabanlı Programlama I Ders Notları

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

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

C# ÖRNEK UYGULAMALAR

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

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

Quick Sort Algoritması (Hızlı Sıralama Algoritması)

ByteArrayOutputStream

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

JAVADA DİZİ İŞLEMLERİ

Java String İşlemleri

Temel Veri Türü İşlemleri

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

ARRAY Alıştırmalar. Program 1: Aşağıdaki program, array kullanmadan, 5 tane değişken tanımlayıp, onların değerlerini konsola yazıyor.

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Transkript:

ArrayList Sınıfı java.util Class ArrayList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.arraylist Java Collections Framework içinde yer alan bu sınıfın üç tane kurucusu vardır: ArrayList() Başlangıç olarak sığası 10 terim olan boş bir dizi oluşturur. ArrayList(Collection c) Parametrede belirtilen koleksiyona ait öğeler içeren bir liste oluşturur. Öğeler, iterator un belirlediği sırayla dizilidirler. ArrayList(int initialcapacity) Sığası (capacity) parametrenin belirlediği sayıda olan bir dizi oluşturur. ArrayList<E> java.util.arraylist<e> sınıfı kendiliğinden büyüyebilen dizi (array) kurar ve temelde Collections Vector sınıfı ile aynı sayılır. ArrayList sınıfının şu özelikleri vardır: Veri eklenip silindikçe ArrayList kendi uzunluğunu otomatik olarak ayarlar. ArrayList listesine erişim işlemi O(1), sokuşturma (insertion) işlemi O(n) ve silme (diletion) işlemi O(n) zaman karmaşasına sahiptir. ArrayList sokuşturma, silme ve arama eylemlerini yapan metotlara sahiptir. ArrayList üzerinde foreach döngüsü, iteratörler ve indexler yardımıyla gezinilebilir. ArrayList ve array Arasında Seçim Programcı, ne zaman ArrayList ve ne zaman array kullanması gerektiği konusunda ikileme düşebilir. Eğer, depoya konulacak öğe sayısı belirli ve o sayı sık sık değişmeyecekse array seçimi uygun olur. Ama öğe sayısı baştan bilinemiyor ya da o sayı sık sık değişiyorsa ArrayList doğru bir seçimdir. Tabii, buna ek olarak şunu söylemeliyiz: ArrayList<E> nesnelerin depolanması içindir. İlkel veri tipleri depolamak için array seçilmesi uygun olur. Bütün bunların ötesinde ArrayList sınıfı List arayüzünün metotlarını kullanma yeteneğine sahiptir; dolayısıyla array yapısına oranla programcıya daha çokkolaylık sağlar. 1

Başlıca ArrayList Metotları Sun, generic tipler için <E> simgesinin kullanılmasını öneiryor. E simgesi koleksiyon içindeki öğelerin veri tipi yerine geçer. Aşağıdaki metotlarda şu bildirimlerin yapıldığını varsayacağız: int i; ArrayList<E> a; E e; Iterator<E> iter; ListIterator<E> liter; E[] earray; Object[] void add(int index, Object element) Listede indisi belirtilen yere öğe sokuşturur (insert). O indisten sonraki öğelerin konumları birer geriye kayar. boolean add(object o) Parametrede verilen nesneyi listenin sonuna ekler. boolean addall(collection c) Parametrede verilen koleksiyonun bütün öğelerini listenin sonuna ekler. Ekleme sırası koleksiyonun iteratörü nün belirlediği sıradadır. boolean addall(int index, Collection c) Belirtilen index ten başlayarak verilen koleksiyonu listeye yerleştirir. void clear() Listedeki bütün öğeleri siler; boş liste haline getirir. Object clone() ArrayList kılgısının (instance) bir kopyasını yapar. boolean contains(object o) Parametrede belirtilen nesne listede varsa true değerini alır. void ensurecapacity(int mincapacity) Gerekiyorsa ArrayList nesnesinin sığasını artırarak, parametrenin belirlediği minimum sığa kadar öğeyi depo edebilmesini sağlar. Object get(int index) İndeksi belirtilen öğeyi verir. int indexof(object o) Parametrede verilen nesnenin listedeki indeksini verir. Nesne listede yoksa -1 değerini verir. boolean isempty() Listenin boş olup olmadığını söyler. int lastindexof(object elem) Belirtilen öğenin listedeki son indeksini söyler. 2

Object remove(int index) İndeksi verilen öğeyi listeden siler. protected void removerange(int fromindex, int toindex) Belirtilen indeksler arasında kalan öğeleri listeden siler. Object set(int index, Object element) Verilen nesneyi istenen indisli öğenin yerine koyar. int size() Listedeki öğe sayısını verir. Object[] toarray() Listedeki öğeleri, aynı sırayla bir array haline getirir. Object[] toarray(object[] a) Listedeki öğeleri, aynı sırayla bir array haline getirir; koşma anındaki tipi belirtilen tip olur. void trimtosize() ArrayList nesnesinin sığasını, listedeki öğe sayısına indirir; yani boş terimleri siler. Aşağıdaki örnekler ArrayList kullanımını gösteren örneklerdir. Örnek 1: Aşağıdaki program önce listeyi bir ArrayList olarak yaratıyor, listenin öğelerine veri atıyor ve listenin öğelerini yazdırıyor. public class ArrayList01 { List list = new ArrayList(); list.add("đzmđr"); list.add("erzurum"); list.add("gđresun"); list.add("konya"); list.add("antalya"); System.out.println(list); System.out.println("3: " + list.get(3)); System.out.println("0: " + list.get(0)); [ĐZMĐR, ERZURUM, GĐRESUN, KONYA, ANTALYA] 3: KONYA 0: ĐZMĐR Listeye veri eklemek için boolean add( Obj ) 3

metodu kullanılmaktadır. Bu metot bir koleksiyona Obj nesnesini (öğe) ekler ve boolean değer alır. Ekleme başarılı ise true, değilse false değerini verir. Listenin öğelerine erişmek için Object get(int index) metodu kullanılmaktadır. Bu metot, listedeki indeksi index parametresi ile belirtilen terimin değerini verir. Örnek 2: public class ArrayList02 { a.add("bir"); a.add("đki"); a.add("üç"); a.add("dört"); a.add("beş"); a.add("altı"); System.out.println("ArrayList = " + a); ArrayList = [Bir, Đki, Üç, Dört, Beş, Altı] Burada System.out.println(a) deyiminin listenin öğelerini sırayla yazdığına dikkat ediniz. Ayrı bir yazdırma metodu ya da döngü kullanılmadı. Örnek 3: public class ArrayList03 { a.add("bir"); a.add("đki"); a.add("üç"); a.add("dört"); a.add("beş"); a.add("altı"); System.out.println("ArrayList = " + a); List b = new ArrayList(); b.addall(a); System.out.println("Yeni dizi = " + b); a ArrayListi = [Bir, Đki, Üç, Dört, Beş, Altı] b ArrayListi = [Bir, Đki, Üç, Dört, Beş, Altı] 4

Bu program a adlı bir ArrayList yaratıyor, add() metodu ile onun terimlerine Bir, Đki, Üç, Dört, Beş, Altı öğelerini atıyor. Sonra b adlı bir ArrayList yaratıyor ve addall() metodu ile a listesinin bütün öğelerini b ye atıyor. Görüldüğü gibi, addall() metodu bir koleksiyondaki bütün öğeleri başka bir koleksiyona yerleştiriyor. boolean addall( Coll ) metodu bir koleksiyon içindeki bütün öğeleri başka bir koleksiyona ekler ve boolean değer alır. Ekleme başarılı ise true, değilse false değerini verir. Örnek 4: public class Koleksiyon { a.add("bir"); a.add("đki"); a.add("üç"); a.add("dört"); a.add("beş"); a.add("altı"); System.out.println(a.isEmpty()); System.out.println(a.contains("Altı")); a.remove(3); System.out.println(" a ArrayList = " + a); System.out.println(" a ArrayList = " + a.remove(1)); a.clear(); System.out.println(" a ArrayList = " + a); a ArrayListi = [Bir, Đki, Üç, Dört, Beş, Altı] false true a ArrayList = [Bir, Đki, Üç, Beş, Altı] a ArrayList = Đki a ArrayList = [] Bu program a adlı bir ArrayList yaratıyor, add() metodu ile onun terimlerine Bir, Đki, Üç, Dört, Beş, Altı öğelerini atıyor ve o terimleri yazdırıyor. a.isempty() metodu, false değerini vererek listenin boş olmadığını söylüyor. a.contains( Altı ) metodu, true değerini vererek listede aranan Altı öğesinin listede olduğunu söylüyor. a.remove(3) metodu, indeksi 3 olan Dört değerini listeden siliyor. 5

a.remove(1) metodunun değeri İki dir. a.clear() metodu listenin bütün öğelerini silerek boş bir liste haline getiriyor. Örnek 5: package koleksiyon; public class Koleksiyon { a.add("çiğdem"); a.add("papatya"); a.add("kardelen"); a.add("lale"); a.add("sümbül"); a.add("gül"); a.add(3, "Diken"); System.out.println(a.indexOf("Diken")); a.set(3, "Gelincik"); System.out.println(a.lastIndexOf("Kamelya")); a ArrayListi = [Çiğdem, Papatya, Kardelen, Lale, Sümbül, Gül] a ArrayListi = [Çiğdem, Papatya, Kardelen, Diken, Lale, Sümbül, Gül] 3 a ArrayListi = [Çiğdem, Papatya, Kardelen, Gelincik, Lale, Sümbül, Gül] -1 Bu program a adlı bir ArrayList yaratıyor, add() metodu ile onun terimlerine Çiğdem, Papatya, Kardelen, Lale, Sümbül, Gül öğelerini atıyor ve o terimleri yazdırıyor. a.add(3, Diken ) metodu, indeksi 3 olan Lale öğesi yerine aynı index ile Diken öğesini sokuşturuyor (insertion). Lale ve sonrakiler birer geriye itiliyor. a.indexof( Diken ) metodu, Diken nesnesinin indeksi olan 3 sayısını veriyor a.set(3, Gelincik ) metodu, Gelincik nesnesini, indeksi 3 olan terimin yerine koyuyor. Diken siliniyor. Öteki öğeler yerlerinde kalıyor. a.lastindexof( Kamelya ) metodu, Kamelya nesnesinin (son) indeksini arıyor. Bulamadığı için -1 veriyor.. 6

Örnek 6: package koleksiyon; public class Koleksiyon { a.add("on"); a.add("yirmi"); a.add("otuz"); a.add("kırk"); a.add("elli"); a.add("altmış"); System.out.println(a.size()); a.set(3, "Beşyüz"); System.out.println(a.size()); a.add(3, "Altıyüz"); System.out.println(a.size()); a ArrayListi = [On, Yirmi, Otuz, Kırk, Elli, Altmış] 6 a ArrayListi = [On, Yirmi, Otuz, Beşyüz, Elli, Altmış] 6 a ArrayListi = [On, Yirmi, Otuz, Altıyüz, Beşyüz, Elli, Altmış] 7 Bu program a adlı bir ArrayList yaratıyor, add() metodu ile onun terimlerine On, Yirmi, Otuz, Kırk, Elli, Altmış öğelerini atıyor ve o terimleri yazdırıyor. a.size() metodu, listede 6 öğe olduğunu bildiriyor. a.set(3, Beşyüz ) metodu, indeksi 3 olan Kırk öğesi yerine aynı index ile Beşyüz öğesini koyuyor. Kırk siliniyor. Bu eylemde, listede indeksi 3 olan öğe değişiyor, ama liste uzunluğu değişmiyor; 6 olarak kalıyor. a.add(3, Altıyüz ) metodu, Altıyüz nesnesini, indeksi 3 olan terimin yerine sokuşturuyor (insertion), öteki terimleri birer geriye itiyor. Listede hiçbir terim silinmiyor. Bu eylemde, Altıyüz nesnesi listede indeksi 3 olan öğe oluyor; öteki terimler bire geriye itiliyor (insertion). Liste uzunluğu 1 artarak 7 oluyor. 7