Sobes.tech
Junior — Middle

Milyen kritérium alapján rendezik az elemeket, ha a collection-ban az entrySet() metódust hívjuk meg?

sobes.tech MI

Válasz az MI-től

Az entrySet() metódus a Map gyűjteményből kulcs-érték párok (Map.Entry) halmazát adja vissza. Önmagában az entrySet() nem garantálja az elemek rendezését.

A rendezési kritérium a Map konkrét megvalósításától függ:

  • A HashMap esetén az elemek sorrendje nem meghatározott (nem rendezett).
  • A LinkedHashMap esetén az elemek a beszúrás sorrendjében vannak rendezve.
  • A TreeMap esetén az elemek a kulcs szerint vannak rendezve, a kulcsok természetes sorrendje vagy a megadott összehasonlító szerint.

Ezért, ha entrySet()-et hívsz egy TreeMap-en, az elemek kulcs szerint lesznek rendezve. Más megvalósításoknál a sorrend lehet véletlenszerű vagy a beszúrás szerint megőrzött.

Példa:

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());
}
// Kimenet:
// a=1
// b=2