Junior — Middle
შეგიძლიათ ახსნათ, როგორ ხდება ელემენტზე წვდომა HashMap სტრუქტურაში?
sobes.tech AI
პასუხი AI-სგან
Java-ში HashMap განხორციელებულია ჰეშ-კოდის საფუძველზე, რომელიც ეფუძნება ბაკეტის მასივს, თითოეული ბაკეტი შეიცავს დაკავშირებულ სია ან ხე (Java 8-დან) ერთგვაროვან ჰეშ-კოდზე ელემენტების.
შესვლის წესი ასეა:
- კლავიშის ჰეშ-კოდი გამოითვლება
hashCode()მეთოდით. - ჰეშ-კოდი გარდაიქმნება ბაკეტის მასივის ინდექსად (საშუალოდ
hash & (capacity - 1)ოპერაციით). - შერჩეულ ბაკეტში ეძება ელემენტი, რომლის კლავიშია იგივე, რაც ძებნილი (
equals()-ით შედარებით). - თუ ელემენტი იპოვეს, დაბრუნდება მასთან დაკავშირებული მნიშვნელობა.
მაგალითი:
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // ჰეშის გამოთვლა, ბაკეტის არჩევა, ელემენტის ძებნა
ამ გზით, ელემენტზე წვდომა შედგება ჰეშის გამოთვლის, ბაკეტის არჩევისა და კლავიშით ძებნისგან ბაკეტში.