Forskellen mellem liste og sæt

Indholdsfortegnelse:

Forskellen mellem liste og sæt
Forskellen mellem liste og sæt

Video: Forskellen mellem liste og sæt

Video: Forskellen mellem liste og sæt
Video: Montering af fodlister og fodpaneler. Lær hvordan du opsætter lister her 2024, November
Anonim

Nøgleforskel – Liste vs Set

De fleste programmeringssprog bruger arrays til at gemme et sæt data af samme type. En stor ulempe ved arrays er, at når arraystørrelsen først er erklæret, kan den ikke ændres. Hvis programmøren ønsker at gemme en værdi, der overstiger array-størrelsen, skal han oprette et nyt array og kopiere de eksisterende elementer til det nye array. I disse situationer kan samlinger bruges. Det er muligt at tilføje elementer, slette elementer og mange andre operationer med støtte fra samlinger. Der er forskellige typer samlinger tilgængelige i programmeringssprog såsom Java. List og Set er grænseflader for samlingshierarki. Basisgrænsefladen for andre grænseflader er Collection. Den vigtigste forskel mellem List og Set er, at List understøtter lagring af det samme element flere gange, mens Set ikke understøtter lagring af det samme element flere gange. Derfor tillader et sæt ikke duplikering.

Hvad er List?

Listen er en grænseflade, der udvider samlingsgrænsefladen. Der er en række metoder i samlingsgrænsefladen. Tilføj metoden hjælper med at tilføje et element. 'Fjernemetoden' er at fjerne et element. Der er 'addAll-metoden' til at tilføje flere elementer, mens 'removeAll-metoden' til at fjerne elementerne fra samlingen. Indeholder-metoden hjælper med at finde ud af, om et specifikt objekt er til stede i listen eller ej. 'Indeholder Alt' er at finde ud af, om et sæt objekter er til stede i samlingen. Iteratormetoden bruges til at gå gennem listens elementer. Da List udvider Collection, hører alle indsamlingsmetoderne til List. Ud over disse metoder har listen metoder såsom get og set. Programmøren kan få en værdi ved et bestemt indeks ved hjælp af get-metoden. Programmøren kan indstille en værdi ved et specifikt indeks ved hjælp af sætmetoden. 'IndexOf' bruges til at finde indekset for et element.

På en liste kan handlingerne udføres i henhold til positionen. Programmøren kan levere det dataelement, der skal tilføjes til indekset. Så det vil blive tilføjet til det specifikke indeks. Hvis programmøren ikke giver et indeks, vil elementet blive tilføjet til slutningen af listen. Den bevarer også den indsatte rækkefølge. Hvis element 1 tilføjes, og derefter element2 tilføjes, vil element1 være før element2.

Forskellen mellem liste og sæt
Forskellen mellem liste og sæt

Figur 01: Liste og sæt

ArrayList, LinkedList, Vector er nogle klasser, der implementerer List. I en ArrayList er adgangen til et element hurtig, men indsættelse og sletning er lavere. ArrayList er ikke trådsikker. Adgang til den samme ArrayList fra flere tråde giver muligvis ikke det samme resultat. I en LinkedList er elementerne knyttet til både baglæns og fremad. Indsættelse og sletning af elementer ved hjælp af en LinkedList er hurtigere end ArrayList. LinkedList implementerer både List og Queue. Vector ligner ArrayList, men den er trinsikker, fordi alle metoderne er synkroniserede.

Hvad er indstillet?

Set er en grænseflade, der udvider samlingsgrænsefladen. Da Set-grænsefladen udvider Collection, tilhører alle samlingsmetoderne også Set. Et sæt understøtter ikke duplikeringsværdier. Derfor kan programmøren ikke gemme det samme element to gange. Det opretholder et unikt sæt af elementer. SortedSet-grænsefladen udvider Set-grænsefladen. SortedSet vedligeholder elementerne i sorteret rækkefølge. NavigableSet-grænsefladen udvider SortedSet. NavigableSet giver navigationsmetoder såsom lavere, gulv, loft osv.

HashSet, LinkedHashSet og TreeSet er nogle klasser, der implementerer Set-grænsefladen. HashSet implementerer Set-grænsefladen. Den bevarer ikke den indsatte rækkefølge. Hvis værdierne er indsat som a, x, b, kan det gemmes som, x, a, b. LinkedSet bevarer den indsatte rækkefølge. Hvis elementerne er indsat i a, x, b rækkefølge, vil lagringsrækkefølgen være a, x, b. TreeSet implementerer Set og NavigableSet. Den opretholder ikke indsættelsesrækkefølgen, men gemmer elementerne i den sorterede rækkefølge. Hvis den indsatte rækkefølge er a, c, b, vil elementerne blive gemt som a, b, c. Alle HashSet, LinkedHashSet og TreeSet vil ikke have nogen duplikerede elementer.

Hvad er lighederne mellem liste og sæt?

  • Både liste- og sætgrænseflader udvider samlingsgrænsefladen.
  • Både liste og sæt supporthandlinger, såsom tilføjelse, fjernelse af elementer.

Hvad er forskellen mellem liste og sæt?

List vs Set

List Interface er undergrænsefladen til Collection, der indeholder metoder til at udføre operationer såsom indsættelse, sletning baseret på indekset. Set Interface er en undergrænseflade til Collection, der indeholder metoder til at udføre operationer såsom indsættelse, sletning af elementer, mens de unikke elementer bevares.
Klasser
ArrayList, Vector og LinkedList er klasser, der implementerer List-interface. HashSet, LinkedHashSet og TreeSet er klasser, der implementerer Set-grænsefladen.
Elementduplikering
List understøtter duplikering af elementer. Set understøtter ikke duplikering af elementer. Elementer er unikke.

Opsummering – List vs Set

Samlinger bruges til at gemme elementer dynamisk. Programmeringssprog såsom Java giver samlingsgrænseflade. List og Set er to grænseflader, der hører til samlingsgrænsefladen. Begge grænseflader udvider Collection. Denne artikel diskuterede forskellen mellem List og Set. Den vigtigste forskel mellem List og Set er, at List understøtter lagring af det samme element flere gange, mens Set ikke understøtter lagring af det samme element flere gange. Sættet bevarer altid unikke elementer.

Anbefalede: