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 deklarert, kan den ikke endres. Hvis programmereren ønsker å lagre en verdi som overskrider 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 finnes forskjellige typer samlinger tilgjengelig i programmeringsspråk som Java. List og Set er grensesnitt for samlingshierarki. Grunngrensesnittet 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 tillater ikke et sett duplisering.
Hva er List?
Listen er et grensesnitt som utvider samlingsgrensesnittet. Det er en rekke metoder i samlingsgrensesnittet. Add-metoden hjelper til med å legge til et element. "Fjernemetoden" er å fjerne et element. Det er 'addAll-metoden' for å legge til flere elementer mens 'removeAll-metoden' for å fjerne elementene fra samlingen. Den inneholder-metoden hjelper til med å finne ut om et spesifikt objekt er til stede i listen eller ikke. «ContainsAll» er å finne ut om et sett med objekter er til stede i samlingen. Iteratormetoden brukes til å gå gjennom elementene i listen. Ettersom List utvider Collection, tilhører alle innsamlingsmetodene List. Annet enn disse metodene har listen metoder som get og set. Programmereren kan få en verdi ved en spesifikk indeks ved å bruke get-metoden. Programmereren kan sette en verdi ved en spesifikk indeks ved å bruke settmetoden. «IndexOf» brukes til å finne indeksen til et element.
I en liste kan operasjonene utføres i henhold til posisjonen. Programmereren kan gi dataelementet som skal legges til indeksen. Så det vil bli lagt til den spesifikke indeksen. Hvis programmereren ikke gir en indeks, vil elementet bli lagt til på slutten av listen. Den opprettholder også den innsatte rekkefølgen. 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 går det raskt å få tilgang til et element, 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 samme resultat. 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 den er slitebanesikker fordi alle metodene er synkronisert.
Hva er satt?
Set er et grensesnitt som utvider samlingsgrensesnittet. Ettersom Set-grensesnittet utvider Collection, tilhører også alle metodene for Collection Set. Et sett støtter ikke dupliseringsverdier. Derfor kan ikke programmereren lagre det samme elementet to ganger. Den opprettholder et unikt sett med elementer. SortedSet-grensesnittet utvider Set-grensesnittet. SortedSet opprettholder elementene i sortert rekkefølge. NavigableSet-grensesnittet utvider SortedSet. NavigableSet tilbyr navigasjonsmetoder som nedre, gulv, tak osv.
HashSet, LinkedHashSet og TreeSet er noen klasser som implementerer Set-grensesnittet. HashSet implementerer Set-grensesnittet. Den opprettholder ikke den innsatte rekkefølgen. Hvis verdiene er satt inn som a, x, b, kan det lagres som, x, a, b. LinkedSet opprettholder den innsatte rekkefølgen. 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 innsettingsrekkefølgen, men lagrer elementene i sortert rekkefølge. Hvis den innsatte 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 liste og angi støtteoperasjoner som å legge til, fjerne elementer.
Hva er forskjellen mellom liste og sett?
List vs Set |
|
List Interface er undergrensesnittet til Collection som inneholder metoder for å utføre operasjoner som å sette inn, slette basert på indeksen. | Set Interface er et undergrensesnitt av Collection som inneholder metoder for å utføre operasjoner som å sette inn, slette elementer samtidig som de unike elementene opprettholdes. |
Klasser | |
ArrayList, Vector og LinkedList er klasser som implementerer listegrensesnitt. | HashSet, LinkedHashSet og TreeSet er klasser som implementerer Set-grensesnitt. |
Elementduplisering | |
List støtter duplisering av elementer. | Set støtter ikke duplisering av elementer. Elementene er unike. |
Summary – List vs Set
Samlinger brukes til å lagre elementer dynamisk. Programmeringsspråk som Java gir samlingsgrensesnitt. List og Set er to grensesnitt som tilhører samlingsgrensesnittet. Begge grensesnittene utvider samlingen. Denne artikkelen diskuterte forskjellen mellom List og Set. Den viktigste forskjellen mellom List og Set er at List støtter lagring av samme element flere ganger, mens Set ikke støtter lagring av samme element flere ganger. Settet har alltid unike elementer.