Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, როგორ ხდება ელემენტზე წვდომა HashMap სტრუქტურაში?

sobes.tech AI

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

Java-ში HashMap განხორციელებულია ჰეშ-კოდის საფუძველზე, რომელიც ეფუძნება ბაკეტის მასივს, თითოეული ბაკეტი შეიცავს დაკავშირებულ სია ან ხე (Java 8-დან) ერთგვაროვან ჰეშ-კოდზე ელემენტების.

შესვლის წესი ასეა:

  1. კლავიშის ჰეშ-კოდი გამოითვლება hashCode() მეთოდით.
  2. ჰეშ-კოდი გარდაიქმნება ბაკეტის მასივის ინდექსად (საშუალოდ hash & (capacity - 1) ოპერაციით).
  3. შერჩეულ ბაკეტში ეძება ელემენტი, რომლის კლავიშია იგივე, რაც ძებნილი (equals()-ით შედარებით).
  4. თუ ელემენტი იპოვეს, დაბრუნდება მასთან დაკავშირებული მნიშვნელობა.

მაგალითი:

HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // ჰეშის გამოთვლა, ბაკეტის არჩევა, ელემენტის ძებნა

ამ გზით, ელემენტზე წვდომა შედგება ჰეშის გამოთვლის, ბაკეტის არჩევისა და კლავიშით ძებნისგან ბაკეტში.