Veri modeli
- Java kursu
- Başlangıç
- Ders 113/116
- 6 dk
Veri modelini ve koleksiyonları kurarsın.
Catalog sınıfı ve ArrayList
Birden fazla kitabı yönetmek için bir Catalog sınıfı yazarsın. İçinde ArrayList<Book> bulunur ve addBook yöntemi yeni kitap ekler.
import java.util.ArrayList;
class Catalog {
ArrayList<Book> books = new ArrayList<>();
void addBook(String title) {
books.add(new Book(title));
}
}addBook bir başlık alır, yeni bir Book yaratır ve listeye ekler. ArrayList dinamik bir dizidir; kapasiteyi sen yönetmezsin. Listeyi yazdırmak için System.out.println(cat.books) yeterlidir; toString her kitabı gösterir.
Listeyi yazdır
System.out.println(cat.books) listenin tümünü yazdırır. ArrayList'in toString'i her öğeyi virgülle ayırır ve köşeli parantez içine alır. Her Book'un kendi toString'i çağrılır.
cat.addBook("Suç ve Ceza");
cat.addBook("Sefiller");
System.out.println(cat.books);
// [[müsait] Suç ve Ceza, [müsait] Sefiller]Bu sayede ayrı bir döngü yazmadan listenin içeriğini görebilirsin. Book sınıfındaki toString tasarımının burada değer kazandığını fark et; iyi bir toString hata ayıklamayı kolaylaştırır.
Uygulama İki kitap ekle ve yazdır
Catalog sınıfına void addBook(String title) yöntemi ekle: yeni Book yaratıp books listesine ekle. main'de cat.addBook("Suç ve Ceza") ve cat.addBook("Sefiller") çağır, sonra cat.books yazdır.
Başlangıç kodu
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
Catalog cat = new Catalog();
// İki kitap ekle ve listeyi yazdır
}
}
class Book {
String title;
boolean available;
Book(String title) {
this.title = title;
this.available = true;
}
public String toString() {
return (available ? "[müsait] " : "[ödünç] ") + title;
}
}
class Catalog {
ArrayList<Book> books = new ArrayList<>();
// addBook metodunu yaz: yeni Book oluştur ve books'a ekle
}Örnek çözüm
// Catalog içinde:
void addBook(String title) {
books.add(new Book(title));
}
// main içinde:
cat.addBook("Suç ve Ceza");
cat.addBook("Sefiller");
System.out.println(cat.books);Beklenen çıktı
[[müsait] Suç ve Ceza, [müsait] Sefiller]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kavramı amacıyla eşleştir
| Kavram | Anlamı |
|---|---|
ArrayList<Book> |
Kitap listesi |
addBook(String) |
Kitap ekle |
new Book(title) |
Nesne yarat |
books.add(...) |
Listeye koy |
2 addBook("Suç ve Ceza") ne yapar?
- Listeden kitap siler
- Kitabı ödünç verir
- Yeni Book yaratıp listeye ekler Doğru cevap
- Listeyi yazdırır
Açıklama: addBook yeni bir Book nesnesi yaratır ve ArrayList'e ekler.
3 addBook çağır
Catalog cat = new Catalog();
cat.____("Sefiller");
Catalog cat = new Catalog();
cat.addBook("Sefiller");
Açıklama: addBook bir başlık alır ve listeye yeni kitap ekler.