Sobes.tech
Middle

Тартиби сохтори чаҳорчӯбаи коллексияҳо дар Java чист?

sobes.tech AI

Ҷавоб аз AI

Фреймворкии коллексияи Java дорои сохтори ҳиерархӣ буда, асосан ба интерфейсҳо ва синфҳо асос ёфтааст. Элементҳои асосӣ:

  • Интерфейсҳои сатҳи боло:
    • Collection: Интерфейси асосӣ барои ҳамаи коллексияҳо. Методи умумиро барои кор бо элементҳо муайян мекунад (илова кардан, тоза кардан, мавҷуд буданро санҷидан ва ғайра).
    • Map: Намояндаи пайвастшавӣ байни калидҳо ва арзишҳо. Зери навъи Collection нест.
  • Интерфейсҳое, ки Collection-ро васеъ мекунанд:
    • List: Коллексияи муаррифӣ. Иҷозат медиҳад дубталикҳоро ва дастрасӣ ба элементҳо тавассути индекс.
    • Set: Коллексия бе дубталикҳо. Рақамро дар бораи тартиби муайян кафолат намедиҳад.
    • Queue: Коллексия барои нигоҳ доштани элементҳо пеш аз коркард. Одатан принсипи FIFO (омадани аввал - баромади аввал)-ро риоя мекунад.
    • Deque: Қатъии дутарафа. Имкон медиҳад, ки элементҳоро ҳам аз оғоз ва ҳам аз охир илова ва тоза кардан мумкин аст.
  • Реализацияҳои маъмултарини интерфейсҳо:
Интерфейс Реализацияҳои маъмул Хусусиятҳо
List ArrayList, LinkedList, Vector ArrayList - массиви динамикӣ, дастрасии тез ба индекс. LinkedList - рӯйхати дуҷониба, илова кардан/тоза кардан дар оғоз ва охир тез. Vector - ArrayList синхронизатсияшуда.
Set HashSet, LinkedHashSet, TreeSet HashSet - элементҳоро дар ҷадвали hash нигоҳ медорад, ҷустуҷӯ/илова/тоза тез. LinkedHashSet - мисли HashSet, аммо тартиби илова карданро нигоҳ медорад. TreeSet - элементҳоро дар тартиби сартосарӣ нигоҳ медорад (дараи сурх- сиёҳ).
Queue LinkedList, ArrayDeque, PriorityQueue LinkedList - метавонад ҳамчун қатор истифода шавад. ArrayDeque - иҷрои самараноки Deque, метавонад ҳамчун қатор ё стек истифода шавад. PriorityQueue - элементҳо асосан ба назар мерасанд.
Deque ArrayDeque, LinkedList ArrayDeque - барои истифода ҳамчун стек/қатор беҳтар аст. LinkedList - метавонад ҳамчун Deque истифода шавад.
  • Интерфейсҳое, ки Map-ро васеъ мекунанд:
    • SortedMap: Харитаи бо калидҳои сортидашуда дар тартиби табиӣ ё бо истифода аз муқоисакунанда.
    • NavigableMap: Инчунин SortedMap-ро васеъ мекунад, бо методҳо барои навигатсия дар байни сабтҳо (масалан, гирифтани сабти наздиктарин).
  • Реализацияҳои маъмултарини интерфейс Map:
Интерфейс Реализацияҳои маъмул Хусусиятҳо
Map HashMap, LinkedHashMap, TreeMap, Hashtable HashMap - сабтҳоро дар hash таблица нигоҳ медорад, амалиётҳо тез. LinkedHashMap - мисли HashMap, аммо тартиби илова карданро нигоҳ медорад. TreeMap - сабтҳоро дар тартиби сартосарӣ дар асоси калидҳо нигоҳ медорад (дараи сурх- сиёҳ). Hashtable - HashMap синхронизатсияшуда (застар).
SortedMap TreeMap Гарант мекунад, ки сабтҳо дар тартиби сартосарӣ бо калидҳо мебошанд.
NavigableMap TreeMap Методҳоро барои навигатсия дар калидҳои сартосарӣ пешниҳод мекунад.
  • Классҳои ёрирасон:
    • Collections: Методҳои статикӣ барои кор бо коллексияҳо (сортировка, ҷустуҷӯ, синхронӣ ва ғайра).
    • Arrays: Методҳои статикӣ барои кор бо массивҳо, аз ҷумла табдил додани массивҳо ба коллексияҳо ва баръакс.

Структура имкон медиҳад, ки намудҳои беҳтаринро барои вазифаҳои мушаххас интихоб кунед, бо асос ёбӣ ба талабот дар бораи тартиби элементҳо, имконияти дубталикҳо, иҷрои амалиётҳо ва зарурати синхронӣ.