Sobes.tech
Junior — Middle

Java-ში HashMap-ის და LinkedHashMap-ის ქცევა და თვისებები როგორ განსხვავდება?

sobes.tech AI

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

Java-ში HashMap და LinkedHashMap განსხვავდებიან შემდეგნაირად:

  • HashMap ინახავს გასაღები-მნიშვნელობის წყვილებს წესრიგის გარეშე. ელემენტების წესრიგი შეიძლება შეიცვალოს დამატებისა ან წაშლის დროს.

  • LinkedHashMap გაფართოება არის HashMap-ის და ინახავს ელემენტების ჩასმის წესს. ეს ნიშნავს, რომ იტერაციის დროს ელემენტები დაბრუნდებიან იმ წესში, როგორადაც დამატებულნი არიან.

მახასიათებლები:

  • LinkedHashMap ცოტა უფრო ნელი არის წესრიგის მხარდაჭერის გამო, რადგან გამოიყენება დაკავშირებული სია.
  • LinkedHashMap შეიძლება გამოყენებულ იქნას კეშების რეალიზაციისთვის, სადაც წაშლა ხდება წვდომის წესით.

მაგალითი:

Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("one", 1);
hashMap.put("two", 2);
hashMap.put("three", 3);

Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("one", 1);
linkedHashMap.put("two", 2);
linkedHashMap.put("three", 3);

System.out.println("HashMap: " + hashMap.keySet());
System.out.println("LinkedHashMap: " + linkedHashMap.keySet());

გამომავალი:

HashMap: [two, one, three]
LinkedHashMap: [one, two, three]

თუ ელემენტების წესრიგი მნიშვნელოვანია, უნდა გამოიყენოთ LinkedHashMap.