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 (ყველაზე დაბალი პრიორიტეტი)