Java'da ArrayList
tags adında bir ArrayList<String> oluşturun, tags.add("oak"); sonra tags.add("pine"); çağırın ve listeyi System.out.println(tags); ile yazdırın. Shelf.java dosyasını derleyin ve java Shelf çalıştırın. Ekran bir satır göstermelidir: [oak, pine]. Köşeli parantezler ve virgül, Java'nın listeyi yazdırma biçimidir. Listeyi add ile büyütürsünüz. Import'tan sonra büyüyen bu liste bu sayfanın öğrettiği şeydir.
Büyüyebilen bir liste
Arrays sayfasında bir String[] süslü parantez içinde sabit sayıda yuva tutuyordu. O diziye add çağıramazdınız. ArrayList farklı bir tutucudur. Boş oluşturur, sonra add ile değer eklersiniz. Her add listeyi bir büyütür. Yazdırma satırı şu an saklanan tüm değerleri köşeli parantez içinde, virgül ve boşlukla gösterir.
Shelf.java dosyasını açın. Dosya adıyla eşleşmesi için public sınıf adını Shelf tutun. Önceki sayfalardan kalan import kit.Bell;, Bell.ring();, package kit; ve her Porch veya Lobby çağrısını silin. Bunlar Classes modülü hikâyesine aittir. Bu sayfa Collections'ı açar. Her Scanner, nextLine veya klavye okumasını da silin. Program yazmanızı beklememelidir.
Shelf.java dosyasının üstüne yakın, public class Shelf satırının üstüne yazın:
import java.util.ArrayList;
Bu import, import sayfasında import kit.Bell;ın Bell getirdiği gibi ArrayList türünü kısa ada getirir. Bu satır olmadan javac bu sayfada kısa ad ArrayList'i görmez. Paket java.util ve sınıf ArrayList'i dikkatle yazın. Burada zorunlu import java.util.*; uydurmayın — tek kesin import yeterlidir.
main içinde listeyi oluşturun:
ArrayList<String> tags = new ArrayList<String>();
Açısal parantezlerde String vardır çünkü bu ders sözcük saklar. tags adını tutulan dosyadaki gibi yazın. new ArrayList<String>() çağrısı boş bir liste nesnesi kurar. Bu anda listede sıfır değer vardır. Şimdi yazdırmak [] gösterir; fakat tutulan dosya yazdırmadan önce sözcük ekler.
Önce oak, sonra pine, sonra yazdır
Kendi satırında tags.add("oak"); çağırın. Sonraki satırda tags.add("pine"); çağırın. Her çağrı tırnak içindeki bir sözcüğü saklar. Ekran için sıra önemlidir: önce oak, sonra pine. Tutulan dosyada yerlerini değiştirmeyin. Bu sayfanın öğretim dosyasına üçüncü sözcük eklemeyin — büyümeyi ve yazdırma biçimini görmek için iki add yeterlidir.
Sonra yazın:
System.out.println(tags);
Listenin adını kendisini verin. tags çevresine tırnak koymayın. Ders yolu olarak elle System.out.println("oak"); yazmayın — nokta, liste nesnesinin her iki sözcüğü taşıyıp birlikte yazdırmasıdır. Derlemeden önce dosyayı kaydedin.
import java.util.ArrayList;
public class Shelf {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
System.out.println(tags);
}
}
Shelf.java dosyasının bulunduğu klasörden javac Shelf.java çalıştırın. Parantezler, süslü parantezler, açısal parantezler ve noktalı virgüller uyuşunca javac kendi satırını yazmaz. Sonra java Shelf çalıştırın — java Shelf.java değil, java ArrayList değil. Çalıştırma komutundan .java sonunu çıkarın. main taşıyan sınıfı başlatın.
Program bir satır yazıp durmalıdır: [oak, pine]. Sizden yazmanızı istememelidir. Terminal klavye girişi bekliyorsa, eski bir alıştırmadan kalan bir nextLine çağrısı hâlâ bir dosyadadır. O çağrıyı silin; ArrayList oluşturmayı, iki add satırını ve System.out.println(tags); ifadesini tutun.
Çalıştırmayı bir kez gezin. Java Shelf.main ile başlar. Import hangi ArrayList'i kastettiğinizi zaten adlandırmıştır. new satırı boş liste kurar. İlk add oak saklar. İkinci add pine saklar. Yazdırma satırı listeden içeriğini göstermesini ister. Ekran [oak, pine] gösterir. Başka bir şey yazılmamalıdır. ding, 9 veya ok görürseniz hâlâ eski bir Porch, Lobby, Pier veya Yard programını çalıştırıyorsunuzdur. java Shelf'e geçin.
javac ArrayList bulamıyorum derse, import satırı eksiktir, yanlış yazılmıştır veya public class Shelf sonrasındadır. import java.util.ArrayList; satırını sınıf satırının üstüne taşıyın. Tırnaksız tags.add(oak); yazarsanız javac oak'ı olmayan bir ad gibi görür. Her sözcüğün tırnaklarını koruyun. String[] tags = new ArrayList<String>(); yazarsanız türler uyuşmaz ve javac reddeder — bu sayfada oluşturma satırının iki yanında ArrayList<String> tutun.
Büyüyen listenin yanında sabit dizi
Kısa bir karşıtlık, arrays sayfasını öğretim çalıştırmasına karıştırmadan göz önünde tutar. Sabit bir String[] hâlâ çalışır. add ile büyümez.
public class Shelf {
public static void main(String[] args) {
String[] trees = {"oak", "pine"};
System.out.println(trees[0]);
}
}
Bu karşıtlığı yalnızca sabit biçimi hatırlamak için derleyip çalıştırın. Ekran oak gösterir — bir yuva — [oak, pine] değil. add çağrısı yoktur. Sabit bir dizide üçüncü sözcük saklamak için üç yuvalı yeni bir dizi gerekir. ArrayList öğretim dosyası import java.util.ArrayList;, iki add ve System.out.println(tags); içeren dosyadır. Sabit dizi dosyasını yalnızca hatırlatma olarak kullanın, quiz yolu olarak değil. Bu karşıtlığa trees.add("elm") karıştırmayın — String[]'in add'i yoktur ve javac reddeder.
Yan yana
Kısa bir tablo farkı net tutar.
📊 ArrayList vs String array
| Piece | On this page |
|---|---|
| create | ArrayList<String> tags = new ArrayList<String>(); |
| grow | tags.add("oak"); then tags.add("pine"); |
| print list | System.out.println(tags); → [oak, pine] |
| fixed array | String[] trees = {"oak", "pine"}; — no add |
Tablo yalnızca hatırlatmadır. Ders dosyası için tuttuğunuz yazılan parçalar import, ArrayList oluşturma, iki add ve tags yazdırmasıdır. |
Import ve arrays ile karşılaştırma
Import sayfasında Porch, import kit.Bell; sonrası Bell.ring(); çağırıyordu. Bu tarihçe olarak hâlâ geçerlidir. Bu sayfa rolü Shelf, import'u java.util.ArrayList yapar. Kalan Bell.ring(); başka bir derstir. Bu sayfa için ArrayList<String> tags, iki add satırı ve liste yazdırmasını tutun.
Arrays sayfasında süslü parantezler sabit bir String[] dolduruyordu. Bilinen boyut için bu hâlâ işe yarar. Bu ders add ile büyümeyi ve tüm listenin tek yazdırmasını görmeniz için ArrayList seçer. Bu sayfanın aynı Shelf demosunda plants[0] ile tags.add("oak") karıştırmayın. Tek net yol yeter: import, oluştur, add, add, yazdır.
Daha sonra get, size veya remove gerektiğinde sonraki sayfa — list metotları — bu çağrıları kapsar. Burada add ve listenin tam yazdırmasıyla kalın. Bu sayfada liste üzerinde döngüyü zorunlu kılmayın; liste nesnesini yazdırmak her iki sözcüğü görmek için yeterlidir.
List metotları için ne kalır
Bu sayfa Collections'ı büyüyebilen bir listeyle açar. Sonraki sayfa bir yuva okumak veya kaç değer olduğunu sormak gibi yaygın list çağrılarını işler. Burada add ve tam yazdırmayla kalın. Bilmiyorsanız burada tags.get(0) zorunlu kılmayın; hedef büyüyen liste ve ekran [oak, pine]dır.
Eski Porch.java veya Lobby.java dosyaları yakındaysa bırakın veya yalnızca çalıştırma komutunu karıştırırlarsa silin. Bu dersin ArrayList dosyasını derledikten sonra java Shelf çalıştırın.
List metotlarından önce
java.util.ArrayList import edebilir, ArrayList<String> tags oluşturabilir, tags.add("oak"); ve tags.add("pine"); çağırabilir, sonra tags yazdırabilirsiniz. Shelf.java derleyin ve java Shelf çalıştırın. Ekran [oak, pine] gösterir. Liste add ile büyüdü. Sonraki sayfa list metotlarıdır; orada bir değere ulaşırsınız veya listeye uzunluğunu sorarsınız.
Import'u sınıfın üstünde tutun. Her iki add'i yazdırmadan önce tutun. Bu ders için java Shelf çalıştırın. Bu üç alışkanlık ilerlemeden önce bu sayfanın kontrol noktasıdır. İki add sonrası ekran [oak, pine] gösterdiğinde ArrayList bu dersin işini yapmış olur ve sonraki konuya hazırsınız.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek