Skip to content

M03 · Bab 5± 45 menitDraf AI

Iterasi & Sorting

Tujuan belajar

  • Memilih cara iterasi yang tepat — enhanced for, indeks, atau Iterator
  • Menghapus elemen saat iterasi tanpa ConcurrentModificationException
  • Mendefinisikan urutan alami dengan Comparable dan urutan lain dengan Comparator
  • Menyusun comparator bertingkat dengan Comparator.comparing, thenComparing, dan reversed
  • Menghindari jebakan pengurutan — overflow pada a - b dan TreeSet yang "menelan" elemen

Prasyarat: equals & hashCode

Kuis

5 soal · lulus bila minimal 70% benar

1.Apa yang terjadi saat menjalankan List<String> orders = new ArrayList<>(List.of("BATAL-001", "INV-002", "INV-003")); for (String o : orders) { if (o.startsWith("BATAL")) orders.remove(o); }?
2.Apa output dari items.sort(Comparator.comparingLong(Item::price).reversed().thenComparing(Item::name)) lalu mencetak nama-namanya, bila isinya Item("B", 10), Item("A", 10), Item("C", 20)?
3.Comparator saldo ditulis (a, b) -> a - b untuk int. Di production, saldo 1_500_000_000 muncul sebelum -1_000_000_000 padahal harusnya sesudah. Kenapa?
4.TreeSet<Product> dibuat dengan Comparator.comparingLong(Product::price). Kamu menambahkan tiga produk berbeda; dua di antaranya berharga sama. Berapa size()-nya?
5.Apa beda Comparable dan Comparator?

Jawab semua soal dulu (0/5)