Junior
Java-ში რა კოლექციები არსებობს?
sobes.tech AI
პასუხი AI-სგან
Java-ში არსებობს შემდეგი ძირითადი კოლექციების ინტერფეისები, რომლებიც შედის Java Collections Framework-ში:
-
Collection: ძირითადი ინტერფეისი, რომელიც განსაზღვრავს საერთო ოპერაციებს ობიექტების ჯგუფებზე. მასგან მემკვიდრეობას იღებენ ქვესაინტერფეისები:List: მოწესრიგებული კოლექცია (სერია). ელემენტები შეიძლება განმეორდეს. მხარდაჭერილია წვდომა ინდექსის მიხედვით.ArrayList: დინამიური მასივი. კარგია სწრაფი წვდომისთვის ინდექსის მიხედვით და ბოლოს დამატებისთვის. ნელია შუაში დამატებისა/წაშლისთვის.LinkedList: ორმაგად დაკავშირებული სია. კარგია დასაწყისში ან ბოლოს დამატებისა/წაშლისთვის. ნელია ინდექსის მიხედვით წვდომისთვის.Vector:ArrayList-ის სინქრონიზებული ვერსია. ითვლება მოძველედ.Stack: მემკვიდრეობით იღებსVector-დან, განახორციელებს სტეკის (LIFO) ქცევას.
Set: კოლექცია, რომელიც შეიცავს მხოლოდ უნიკალურ ელემენტებს. არ უზრუნველყოფს წესრიგს.HashSet: რეალიზებულია ჰეშ-ტაბლით. ყველაზე სწრაფია დამატების, წაშლის და არსებობის შემოწმებისთვის. არ უზრუნველყოფს წესრიგს.LinkedHashSet: რეალიზებულია როგორც ჰეშ-ტაბლი + დაკავშირებული სია. უზრუნველყოფს დამატების წესს.TreeSet: რეალიზებულია წითელი-შავი ხის საშუალებით. ინახავს ელემენტებს სორტირებულ წესში. ნელა, ვიდრეHashSet, მაგრამ სწრაფია დიაპაზონის ძიებისთვის.
Queue: კოლექცია, რომელიც განკუთვნილია ელემენტების შენახვისთვის წინასწარ დამუშავებისთვის (FIFO - პირველი შევიდა, პირველი გამოვიდა).PriorityQueue: ელემენტები ინახება მათი ბუნებრივი წესის ან კომპარატორის მიხედვით. გამოაქვს უმაღლესი პრიორიტეტი.Deque: (ორმხრივი რიგი) მხარდაჭერილია დამატება და წაშლა ორივე მხარიდან.ArrayDeque: მასივზე დაფუძნებული რეალიზაცია. უფრო ეფექტურია ვიდრეLinkedListრიგი/სტეკისთვის.
-
Map: კოლექცია, რომელიც ინახავს კუპარ-ფასი წყვილებს. კლავიშები უნიკალურია.HashMap: რეალიზებულია ჰეშ-ტაბლით. ყველაზე სწრაფია დამატებისა, წაშლის და არსებობის შემოწმებისთვის. არ უზრუნველყოფს წესრიგს.LinkedHashMap: რეალიზებულია როგორც ჰეშ-ტაბლი + დაკავშირებული სია. უზრუნველყოფს დამატების ან წვდომის წესს.TreeMap: რეალიზებულია წითელი-შავი ხის საშუალებით. ინახავს კუპარ-ფასი წყვილებს სორტირებულ წესში კლავიშების მიხედვით. ნელა, ვიდრეHashMap.HashTable: სინქრონიზებული ვერსიაHashMap-ის. ითვლება მოძველედ.
არსებობს ასევე მოძველებული კლასები, რომლებიც არ შედის JCF-ში, მაგრამ ხშირად გამოიყენება:
VectorStackHashtableEnumeration(ინტერფეისი)