Sobes.tech
Junior — Middle

Kā atšķiras HashMap un LinkedHashMap uzvedība un īpašības Java?

sobes.tech AI

Atbilde no AI

Java HashMap un LinkedHashMap atšķiras šādi:

  • HashMap glabā atslēgas-vertības pārus bez garantijas par kārtību. Elementu kārta var mainīties pievienošanas vai dzēšanas laikā.

  • LinkedHashMap paplašina HashMap un saglabā elementu ievietošanas kārtību. Tas nozīmē, ka iterējot, elementi tiks atgriezti tajā pašā kārtībā, kādā tie tika pievienoti.

Īpatnības:

  • LinkedHashMap ir nedaudz lēnāks, jo tas atbalsta sasaistītu sarakstu kārtībai.
  • LinkedHashMap var tikt izmantots kešatmiņu realizācijai ar dzēšanu pēc piekļuves kārtības.

Piemērs:

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());

Izvade:

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

Ja elementu kārta ir svarīga, jāizmanto LinkedHashMap.