Sobes.tech
Junior

Ի՞նչ հավաքածուներ կան Java-ում։

sobes.tech AI

Պատասխան AI-ից

Java-յում առկա են հետևյալ հիմնական հավաքածուների ինտերֆեյսները, որոնք ընդգրկված են Java Collections Framework-ում:

  • Collection: Հիմնական ինտերֆեյս, որը սահմանում է ընդհանուր գործողություններ օբյեկտների խմբերի վրա: Դիցուք, այն ժառանգում են ստորին ինտերֆեյսները:

    • List: Սորտավորված հավաքածու (հետևյալ): Էլեմենտները կարող են կրկնվել: Պատրաստ է հասանելիության համար ըստ ինդեքսի:
      • ArrayList: Դինամիկ զանգված: Լավ է արագ հասանելիության և վերջում ավելացման համար: Աչքահայթում է միջինում ավելացման/ջնջման համար:
      • LinkedList: Երկու ուղղությամբ կապված ցանկ: Լավ է սկզբից կամ վերջից ավելացման/ջնջման համար: Աչքահայթում է հասանելիության համար ըստ ինդեքսի:
      • Vector: ArrayList-ի սինխրոնիզացված տարբերակ: Հաշվում է որպես հնացած:
      • Stack: ժառանգում է Vector-ից, իրականացնում Stack-ի (LIFO) վարքագիծ:
    • Set: Միայն եզակի էլեմենտներ պարունակող հավաքածու: Որեւէ հերթականություն չի ապահովում:
      • HashSet: Հաշվային տախտակամածի միջոցով իրականացված: Ամենահեշտ և ամենաարագը ավելացման, ջնջման և առկայության ստուգման համար: Հերթը չի ապահովում:
      • LinkedHashSet: Հաշվային տախտակամած + կապված ցանկ: Հաստատում է ավելացման հերթականությունը:
      • TreeSet: Կատարվում է կարմրուկ-սև ծառի միջոցով: Պահպանում է էլեմենտները դասավորված կարգով: Ավելի դանդաղ, քան HashSet, բայց ավելի արագ, քան LinkedHashSet տիրապետման համար:
    • Queue: Հավաքածու, որը նախատեսված է էլեմենտների պահեստավորման համար նախքան մշակումը (FIFO - առաջինը մտավ, առաջինը դուրս):
      • PriorityQueue: Էլեմենտները պահվում են ըստ իրենց բնական կարգի կամ համեմատիչի: Հանում է բարձր առաջնահերթությամբ էլեմենտը:
      • Deque: (Երկկողմանի հերթ) Պատրաստ է ավելացման և ջնջման երկու կողմերից:
        • ArrayDeque: Բազումի վրա հիմնված Deque իրականացում: Ավելի արդյունավետ, քան LinkedList որպես հերթ/ստեկ:
  • Map: Հավաքածու, որը պահպանում է բանալու-արժեք զույգեր: Բանալիները եզակի են:

    • HashMap: Հաշվային տախտակամածի միջոցով իրականացված: Ամենաարագը ավելացման, ջնջման և առկայության ստուգման համար: Հերթը չի ապահովում:
    • LinkedHashMap: Հաշվային տախտակամած + կապված ցանկ: Գերաշխավորում է ավելացման կամ հասանելիության հերթականությունը:
    • TreeMap: Կատարվում է կարմրուկ-սև ծառի միջոցով: Պահպանում է բանալու-արժեք զույգերը դասավորված կարգով ըստ բանալիների: Ավելի դանդաղ, քան HashMap:
    • HashTable: Սինխրոնիզացված տարբերակ HashMap-ի: Հաշվում է որպես հնացած:

Կան նաև հնացած դասեր, որոնք չեն մաս է կազմում JCF-ի, բայց հաճախ հանդիպում են:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (ինտերֆեյս)