Sobes.tech
Junior

Java პროგრამირების ენაში კოლექციების განხორციელებები რა არის?

sobes.tech AI

პასუხი AI-სგან

  • ინტერფეისები:

    • Collection: ყველა კოლექციისთვის ძირითადი ინტერფეისი.
    • List: მოწესრიგებული კოლექცია (ს ინდექსებით).
    • Set: კოლექცია, რომელიც არ შეიცავს დუბლიკატებს.
    • SortedSet: მოწესრიგებული კოლექცია, რომელიც არ შეიცავს დუბლიკატებს, ელემენტები სორტირებულია.
    • Map: ასოციაციური მასივი (საკლავი-ფასი).
    • SortedMap: სორტირებული ასოციაციური მასივი კლავებით.
    • Queue: კოლექცია ელემენტების შენახვისთვის მათი დამუშავებამდე.
    • Deque: ორმხრივი რიგი.
  • კლასები (ძირითადი რეალიზაციები):

    • List-თვის:

      • ArrayList: დინამიური მასივი. სწრაფი წვდომა ინდექსით, ნელი ოპერაციები შუაში ჩასმის/წაშლისთვის.
      • LinkedList: ორიაკავშირებული სია. ნელი წვდომა ინდექსით, სწრაფი შუაში ჩასმის/წაშლისთვის.
      • Vector: მოძველებული სინქრონიზებული ArrayList-ის ანალოგი.
      • Stack: Vector-ის ქვკლასი, რომელიც ახორციელებს სტეკს (LIFO).
    • Set-თვის:

      • HashSet: ჰეშ-ტაბლაზე დაფუძნებული რეალიზაცია. არ გარანტირებს ელემენტების წესრიგს.
      • LinkedHashSet: ჰეშ-ტაბლასა და დაკავშირებულ სიაზე დაფუძნებული რეალიზაცია. ინახავს ჩასმის წესს.
      • TreeSet: წითელი-შავი ხის რეალიზაცია. ელემენტები სორტირებულია ზრდადობით.
    • Map-თვის:

      • HashMap: ჰეშ-ტაბლაზე დაფუძნებული რეალიზაცია. არ გარანტირებს კლავ-ფასის წესრიგს.
      • Hashtable: მოძველებული სინქრონიზებული HashMap-ის ანალოგი.
      • LinkedHashMap: ჰეშ-ტაბლასა და დაკავშირებულ სიაზე დაფუძნებული რეალიზაცია. ინახავს ჩასმის წესს.
      • TreeMap: წითელი-შავი ხის რეალიზაცია. კლავ-ფასის წყვილები სორტირებულია კლავებით.
    • Queue-თვის:

      • PriorityQueue: პრიორიტეტული რიგი. ელემენტები გამოიღებენ მათ ბუნებრივ წესრიგში ან კომპარატორით.
      • ArrayDeque: ორმხრივი რიგი, დაფუძნებული მასივზე.
  • Utilities:

    • Collections: სტატიკური მეთოდები კოლექციებთან მუშაობისთვის (სორტირება, ძიება, სინქრონიზაცია და ა.შ.).
// ArrayList-ის გამოყენების მაგალითი
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// HashSet-ის გამოყენების მაგალითი
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // დუბლიკატი არ დაემატება
System.out.println(numbers.size()); // 2
// HashMap-ის გამოყენების მაგალითი
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// PriorityQueue-ის გამოყენების მაგალითი
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (ყველაზე დაბალი პრიორიტეტი)