Sobes.tech
Junior

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

sobes.tech AI

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

Java Collections Framework-ը բազմաթիվ հավաքածուներ է առաջարկում տվյալների պահեստավորման և կառավարման համար: Հիմնական ինտերֆեյսները և դրանց իրականացման ձևերը՝

  • Collection: հիմնական ինտերֆեյսը:
    • List: կարգավորված հավաքածու, թույլ է տալիս կրկնօրինակել տարրերը:
      • ArrayList: հիմնված զանգվածի վրա, արագ մուտք դեպի ինդեքս, դանդաղ միջինում ավելացում/ջնջում:
      • LinkedList: հիմնված երկկողմանի կապակցված ցանկի վրա, արագ ավելացում/ջնջում, դանդաղ մուտք ինդեքսով:
      • Vector: ArrayList-ի բազմամյա տարբերակ, անվտանգ հոսքերի համար, հնացած:
      • Stack: հիմնված Vector-ի վրա, LIFO սկզբունք:
    • Set: եզակի տարրերի հավաքածու, առանց հատուկ կարգի (բացառությամբ SortedSet):
      • HashSet: հիմնված հեշ-սեղանի վրա, արագ մուտք և ավելացում/ջնջում:
      • LinkedHashSet: պահպանում է ավելացման կարգը:
      • TreeSet: պահպանում է տարրերը դասավորված կարգով:
    • Queue: տարրերի հավաքածու, հաճախ օգտագործվում է նախքան մշակումը FIFO կարգով:
      • PriorityQueue: տարրերը հանվում են իրենց առաջնահերթության կարգով:
      • ArrayDeque: երկկողմանի հերթ:
    • Deque: երկկողմանի հերթ, կարող է ավելացնել և հեռացնել տարրերը երկու կողմերից:
  • Map: պահպանում է բանալու-արժեք զույգեր, բանալիները եզակի են:
    • HashMap: հիմնված հեշ-սեղանի վրա, արագ մուտք ըստ բանալի:
    • LinkedHashMap: պահպանում է ավելացման կամ մուտքի կարգը:
    • TreeMap: պահպանում է զույգերը դասավորված կարգով ըստ բանալի:
    • Hashtable: HashMap-ի հոսքերի համար անվտանգ տարբերակ, հնացած:

Հոսքերի անվտանգ հավաքածուներ:

  • Collections.synchronized*: պատվածքներ առկա հավաքածուների վրա:
  • Concurrent*: java.util.concurrent փաթեթում, հավաքածուներ՝ բարելավված կատարողականությամբ մրցակցային միջավայրում:
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

Եվ այլ քիչ տարածված հավաքածուներ: