Sobes.tech
Junior — Middle

Ro'yxat va to'plamlardan foydalanishda contains() metodining xulq-atvoridagi farq nima?

sobes.tech AI

AIdan javob

Java'da contains() metodi, kolleksiyaning ma'lum bir elementni o'z ichiga olishini tekshirish uchun ishlatiladi. Bu metodning xulq-atvori List va Set o'rtasida farq qiladi:

  • List.contains() elementning mavjudligini tekshirish uchun elementlarni qo'shilish tartibida aylanib chiqadi. Agar element mavjud bo'lsa, true qaytaradi. Tartib muhim, va qidiruv sekinroq bo'lishi mumkin, chunki ro'yxat takrorlanmalarni o'z ichiga olishi mumkin.

  • Set.contains() odatda hash-jadval asosida amalga oshiriladi (masalan, HashSet), bu esa elementning mavjudligini tekshirishni tezroq qiladi (taxminan O(1)). To'plam takrorlanmalarni o'z ichiga olmaydi, shuning uchun tekshirish aniq.

Xulosa:

  • Ro'yxatlarda, contains() qidiruvi vaqt bo'yicha chiziqli.
  • To'plamlarda, hashlash yordamida tez.

Misol:

List<String> list = Arrays.asList("apple", "banana", "apple");
Set<String> set = new HashSet<>(list);

boolean inList = list.contains("apple"); // true
boolean inSet = set.contains("apple");   // true

Asosiy farq — ishlash tezligi va to'plamda takrorlanmalarning yo'qligi.