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

სხვა ნაკლებად გავრცელებული კოლექციები.