Sobes.tech
Junior

Kā atšķiras List no Set Java valodā?

sobes.tech AI

Atbilde no AI

Galvenās atšķirības:

  1. Elementu kārtība:
    • List saglabā elementu pievienošanas kārtību.
    • Set nenodrošina elementu kārtību (atkarīgs no realizācijas, piemēram, LinkedHashSet saglabā pievienošanas kārtību).
  2. Dublikātu klātbūtne:
    • List ļauj glabāt dublētus elementus.
    • Set glabā tikai unikālus elementus.
  3. Pieeja pie elementiem:
    • List nodrošina piekļuvi elementiem pēc indeksa.
    • Set nepiedāvā tiešu piekļuvi pēc indeksa, piekļuve notiek caur iteratoru vai pārbaudi.
  4. Veiktspēja:
    • List meklēšanas un pievienošanas operācijas ar lielu elementu skaitu var būt lēnākas nekā Set (piemēram, HashSet).
    • Set pievienošanas un dzēšanas operācijas parasti ir vidēji konstants laika sarežģītība.

Piemērs:

// Saraksts, kas saglabā dublikātus un uztur kārtību
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple");
System.out.println(list); // Izvade: [Apple, Banana, Apple]

// Kopums, kas saglabā tikai unikālus elementus
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple");
System.out.println(set); // Izvade: [Apple, Banana] (kārtība var atšķirties)

Salīdzinoša tabula:

Aspekts List Set
Kārtība Saglabājas Nav garantēta (atkarīgs no realizācijas)
Dublikāti Atļauti Nav atļauti
Pieeja pēc indeksa Ir Nav
Saskarne java.util.List java.util.Set
Biežākā lietošana Kārtotas kolekcijas, saraksti Unikālas kolekcijas, kopas