Sobes.tech
Junior — Middle

რისი კრიტერიუმი გამოიყენება ელემენტების სორტირებისთვის, თუ კოლექციაში entrySet() მეთოდი გამოიძახება?

sobes.tech AI

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

entrySet() მეთოდი Map კოლექციიდან გასაღები-ღირებულების წყვილების (Map.Entry) ნაკრებს აბრუნებს. თავისით, entrySet() არ გარანტირებს ელემენტების სორტირებას.

სორტირების კრიტერიუმი დამოკიდებულია Map-ის კონკრეტულ განხორციელებაზე:

  • HashMap-ში, ელემენტების სია განსაზღვრული არაა (არ არის სორტირებული).
  • LinkedHashMap-ში, ელემენტები სორტირებულია დამატების წესით.
  • TreeMap-ში, ელემენტები სორტირებულია გასაღებით, ბუნებრივი წესით ან მიწოდებული შედარებით.

ამიტომ, თუ entrySet() გამოიძახეთ TreeMap-ზე, ელემენტები იქნება სორტირებული გასაღებით. სხვა განხორციელებებში, სორტი შეიძლება იყოს შემთხვევითი ან შენახული დამატების მიხედვით.

მაგალითი:

Map<String, Integer> map = new TreeMap<>();
map.put("b", 2);
map.put("a", 1);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + "=" + entry.getValue());
}
// გამოყვანა:
// a=1
// b=2