Nøkkelforskjell - List vs Set
De fleste programmeringsspråk bruker arrays for å lagre et sett med data av samme type. En stor ulempe med matriser er at når matrisestørrelsen er erklært, kan den ikke endres. Hvis programmereren vil lagre verdier som overstiger matrisestørrelsen, bør han opprette en ny matrise og kopiere de eksisterende elementene til den nye matrisen. I disse situasjonene kan samlinger brukes. Det er mulig å legge til elementer, slette elementer og mange andre operasjoner med støtte fra samlinger. Det er forskjellige typer samlinger tilgjengelig på programmeringsspråk som Java. List and Set er grensesnitt for samlingshierarkiet. Basisgrensesnittet for andre grensesnitt er Collection. Hovedforskjellen mellom List og Set er at List støtter lagring av det samme elementet flere ganger mens Set ikke støtter lagring av det samme elementet flere ganger. Derfor,et sett tillater ikke duplisering.
INNHOLD
1. Oversikt og nøkkelforskjell
2. Hva er liste
3. Hva er satt
4. Likheter mellom liste og sett
5. Sammenligning side om side - Liste vs sett i tabellform
6. Sammendrag
Hva er List?
Listen er et grensesnitt som utvider Collection-grensesnittet. Det finnes en rekke metoder i samlingsgrensesnittet. Add-metoden hjelper til med å legge til et element. 'Fjern metoden' er å fjerne et element. Det er 'addAll-metode' for å legge til flere elementer mens 'removeAll method' for å fjerne elementene fra samlingen. Metoden inneholder hjelper til med å finne ut om et bestemt objekt er til stede i listen eller ikke. 'ContainAll' er å finne ut om et sett med objekter er til stede i samlingen. Iterator-metoden brukes til å gå gjennom elementene i listen. Når listen utvider samlingen, tilhører alle metodene for samlingen listen. Annet enn disse metodene, har listen metoder som get and set. Programmereren kan få en verdi ved en bestemt indeks ved hjelp av get-metoden. Programmereren kan angi en verdi ved en bestemt indeks ved hjelp av innstillingsmetoden.'IndexOf' brukes til å finne indeksen til et element.
I en liste kan operasjonene utføres i henhold til posisjonen. Programmereren kan levere dataelementet som skal legges til indeksen. Så det vil bli lagt til den spesifikke indeksen. Hvis programmereren ikke gir en indeks, vil elementet legges til på slutten av listen. Den opprettholder også den innlagte ordren. Hvis element 1 legges til og deretter element2 legges til, vil element1 være før element2.
Figur 01: Liste og sett
ArrayList, LinkedList, Vector er noen klasser som implementerer List. I en ArrayList er tilgang til et element raskt, men det er lavere å sette inn og slette. ArrayList er ikke trådsikker. Å få tilgang til den samme ArrayList fra flere tråder gir kanskje ikke det samme resultatet. I en LinkedList er elementene knyttet til både bakover og fremover. Å sette inn og slette elementer ved hjelp av en LinkedList er raskere enn ArrayList. LinkedList implementerer både liste og kø. Vector ligner på ArrayList, men det er slitebanesikkert fordi alle metodene er synkronisert.
Hva er satt?
Set er et grensesnitt som utvider Collection-grensesnittet. Ettersom Set-grensesnittet utvider Collection, tilhører alle metodene for Collection også Set. Et sett støtter ikke dupliseringsverdier. Derfor kan ikke programmereren lagre det samme elementet to ganger. Det opprettholder et unikt sett med elementer. SortedSet-grensesnittet utvider Set-grensesnittet. SortedSet holder elementene i sortert rekkefølge. NavigableSet-grensesnittet utvider SortedSet. NavigableSet gir navigasjonsmetoder som under, gulv, tak osv.
HashSet, LinkedHashSet og TreeSet er noen klasser som implementerer Set-grensesnittet. HashSet implementerer Set-grensesnittet. Den opprettholder ikke den innlagte rekkefølgen. Hvis verdiene settes inn som a, x, b kan det lagres som, x, a, b. LinkedSet opprettholder den innlagte ordren. Hvis elementene settes inn i a, x, b rekkefølge, vil lagringsrekkefølgen være a, x, b. TreeSet implementerer Set og NavigableSet. Den opprettholder ikke rekkefølgen for innsetting, men lagrer elementene i sortert rekkefølge. Hvis den innlagte rekkefølgen er a, c, b, vil elementene bli lagret som a, b, c. Alle HashSet, LinkedHashSet og TreeSet vil ikke ha noen dupliserte elementer.
Hva er likhetene mellom liste og sett?
- Både liste- og settgrensesnitt utvider samlingsgrensesnittet.
- Både List og Set-støtteoperasjoner som å legge til, fjerne elementer.
Hva er forskjellen mellom liste og sett?
Liste vs Sett |
|
Listegrensesnitt er undergrensesnittet til samlingen som inneholder metoder for å utføre operasjoner som å sette inn, slette basert på indeksen. | Set Interface er et undergrensesnitt for Collection som inneholder metoder for å utføre operasjoner som å sette inn, slette elementer mens de unike elementene opprettholdes. |
Klasser | |
ArrayList, Vector og LinkedList er klasser som implementerer List-grensesnitt. | HashSet, LinkedHashSet og TreeSet er klasser som implementerer Set-grensesnitt. |
Element duplisering | |
Liste støtter duplisering av elementer. | Settet støtter ikke duplisering av elementer. Elementene er unike. |
Sammendrag - Liste vs Sett
Samlinger brukes til å lagre elementer dynamisk. Programmeringsspråk som Java gir samlingsgrensesnitt. Liste og sett er to grensesnitt som hører til samlingsgrensesnittet. Begge grensesnittene utvider samlingen. Denne artikkelen diskuterte forskjellen mellom List og Set. Hovedforskjellen mellom List og Set er at List støtter lagring av det samme elementet flere ganger mens Set ikke støtter lagring av det samme elementet flere ganger. Sett opprettholder alltid unike elementer.