Sobes.tech
Junior — Middle

Hogyan lehet eltávolítani a duplikált elemeket egy nem rendezett listából a HashSet vagy HashMap adatszerkezetek használatával az ismétlődések automatikus kiküszöbölése érdekében egyedi kulcsok segítségével?

sobes.tech MI

Válasz az MI-től

Anélkül, hogy rendezett listáról beszélnénk, a duplikált elemek eltávolításához Java-ban a HashSet vagy HashMap adatszerkezeteket használhatod, kihasználva azok egyedi kulcsok tárolására vonatkozó tulajdonságaikat.

  • HashSet csak egyedi elemeket tárol. Duplikátumok hozzáadásakor automatikusan figyelmen kívül hagyja őket.
  • HashMap akkor használható, ha párokat szeretnél tárolni kulcs-érték formában, ahol a kulcsok egyediek.

Példa duplikátumok eltávolítására listából HashSet segítségével:

import java.util.*;

List<String> duplikatumLista = Arrays.asList("alma", "banán", "alma", "narancs", "banán");

// HashSet létrehozása a listából — a duplikátumok automatikusan eltávolításra kerülnek
Set<String> halmaz = new HashSet<>(duplikatumLista);

// Ha duplikátummentes listára van szükséged
List<String> duplikatumMentesLista = new ArrayList<>(halmaz);

System.out.println(duplikatumMentesLista);

Ha meg akarod tartani az elemek sorrendjét, használhatod a LinkedHashSet-et:

Set<String> linkedHashSet = new LinkedHashSet<>(duplikatumLista);
List<String> sorrendbeAllitottLista = new ArrayList<>(linkedHashSet);

Így a HashSet és HashMap hatékonyan lehetővé teszi a duplikátumok eltávolítását az egyedi kulcsok tárolásával.