Sobes.tech
Junior

Java'da qanday to'plamlar mavjud?

sobes.tech AI

AIdan javob

Java'da, Java Collections Framework'ga kiradigan quyidagi asosiy kolleksiya interfeyslari mavjud:

  • Collection: Ob'ektlar guruhlari ustida umumiy operatsiyalarni belgilovchi asosiy interfeys. Udan quyidagi sub-interfeyslar meros oladi:

    • List: Tartiblangan kolleksiya (ketma-ketlik). Elementlar takrorlanishi mumkin. Indeks bo'yicha kirishni qo'llab-quvvatlaydi.
      • ArrayList: Dinamik massiv. Indeks bo'yicha tez kirish va oxiriga qo'shish uchun yaxshi. O'rta joyga qo'shish/olib tashlash sekin.
      • LinkedList: Ikki tomonlama bog'langan ro'yxat. Boshlash yoki oxiriga qo'shish/olib tashlash uchun yaxshi. Indeks bo'yicha kirish sekin.
      • Vector: ArrayList'ning sinxronlashtirilgan versiyasi. Eskirgan deb hisoblanadi.
      • Stack: Vectordan meros oladi, stek (LIFO) xulqini amalga oshiradi.
    • Set: Faqat noyob elementlarni o'z ichiga oladigan kolleksiya. Tartibni kafolatlamaydi.
      • HashSet: Hash jadvali yordamida amalga oshirilgan. Eshik qo'shish, olib tashlash va mavjudligini tekshirish uchun eng tez. Tartibni kafolatlamaydi.
      • LinkedHashSet: Hash jadvali + bog'langan ro'yxat sifatida amalga oshirilgan. Qo'shish tartibini kafolatlaydi.
      • TreeSet: Qizil-oq qiyshiq daraxt yordamida amalga oshirilgan. Elementlarni tartiblangan tartibda saqlaydi. HashSetdan sekinroq, ammo LinkedHashSetdan tezroq qidiruv uchun.
    • Queue: Qator (FIFO - Birinchi kirgan birinchi chiqadi) uchun mo'ljallangan kolleksiya.
      • PriorityQueue: Elementlar ularning tabiiy tartibi yoki taqqoslovchi yordamida saqlanadi. Eng yuqori ustuvorlikdagi element chiqariladi.
      • Deque: (Double Ended Queue) Ikkala uchidan ham qo'shish va olib tashlashni qo'llab-quvvatlaydi.
        • ArrayDeque: Array asosidagi Deque amalga oshirish. LinkedListga qaraganda samaraliroq.
  • Map: Kalit-qiymat juftlarini saqlovchi kolleksiya. Kalitlar noyob.

    • HashMap: Hash jadvali yordamida amalga oshirilgan. Eshik qo'shish, olib tashlash va mavjudligini tekshirish uchun eng tez. Kalitlarning tartibini kafolatlamaydi.
    • LinkedHashMap: Hash jadvali + bog'langan ro'yxat sifatida amalga oshirilgan. Qo'shish yoki kirishni tartibini kafolatlaydi.
    • TreeMap: Qizil-oq daraxt yordamida amalga oshirilgan. Kalitlar bo'yicha tartiblangan kalit-qiymat juftlarini saqlaydi. HashMapdan sekinroq.
    • HashTable: HashMap'ning sinxronlashtirilgan versiyasi. Eskirgan deb hisoblanadi.

Shuningdek, eski sinflar mavjud bo'lib, ular JCF ga kirmaydi, lekin ba'zan uchraydi:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (interfeys)