Verskil tussen lys en stel

INHOUDSOPGAWE:

Verskil tussen lys en stel
Verskil tussen lys en stel

Video: Verskil tussen lys en stel

Video: Verskil tussen lys en stel
Video: Mathematics with Python! Sequences 2024, November
Anonim

Sleutelverskil – Lys vs Set

Die meeste programmeertale gebruik skikkings om 'n stel data van dieselfde tipe te stoor. Een groot nadeel van skikkings is dat, sodra die skikkingsgrootte verklaar is, dit nie gewysig kan word nie. As die programmeerder 'n waarde wil stoor wat die skikkingsgrootte oorskry, moet hy 'n nuwe skikking skep en die bestaande elemente na die nuwe skikking kopieer. In hierdie situasies kan versamelings gebruik word. Dit is moontlik om elemente by te voeg, elemente te verwyder en baie ander bewerkings met die ondersteuning van versamelings. Daar is verskillende soorte versamelings beskikbaar in programmeertale soos Java. Lys en Stel is koppelvlakke van versamelingshiërargie. Die basis koppelvlak vir ander koppelvlakke is Collection. Die belangrikste verskil tussen Lys en Stel is dat Lys die stoor van dieselfde element verskeie kere ondersteun, terwyl Set nie die stoor van dieselfde element verskeie kere ondersteun nie. Daarom laat 'n Stel nie duplisering toe nie.

Wat is Lys?

Die lys is 'n koppelvlak wat die versameling-koppelvlak uitbrei. Daar is 'n aantal metodes in die versameling-koppelvlak. Die add-metode help om 'n element by te voeg. Die 'verwyder metode' is om 'n element te verwyder. Daar is 'addAll-metode' om veelvuldige elemente by te voeg, terwyl 'removeAll-metode' om die elemente uit die versameling te verwyder. Die bevat-metode help om te bepaal of 'n spesifieke voorwerp in die lys teenwoordig is of nie. Die 'containsAll' is om te bepaal of 'n stel voorwerpe in die versameling teenwoordig is. Die iterator-metode word gebruik om deur die items van die lys te loop. Soos List versameling uitbrei, behoort al die metodes van versameling aan List. Anders as daardie metodes, het die Lys metodes soos kry en stel. Die programmeerder kan 'n waarde by 'n spesifieke indeks kry deur die get-metode te gebruik. Die programmeerder kan 'n waarde by 'n spesifieke indeks stel deur die stel metode te gebruik. Die 'indexOf' word gebruik om die indeks van 'n element te vind.

In 'n lys kan die bewerkings volgens die posisie uitgevoer word. Die programmeerder kan die data-element verskaf wat by die indeks gevoeg moet word. Dit sal dus by die spesifieke indeks gevoeg word. As die programmeerder nie 'n indeks gee nie, sal die element aan die einde van die Lys bygevoeg word. Dit handhaaf ook die ingevoegde volgorde. As element 1 bygevoeg word en dan element2 bygevoeg word, dan sal element1 voor element2 wees.

Verskil tussen lys en stel
Verskil tussen lys en stel

Figuur 01: Lys en stel

ArrayList, LinkedList, Vector is 'n paar klasse wat List implementeer. In 'n ArrayList is toegang tot 'n element vinnig, maar die invoeging en uitvee is laer. ArrayList is nie draad-veilig nie. Toegang tot dieselfde ArrayList vanaf verskeie drade sal dalk nie dieselfde resultaat gee nie. In 'n gekoppelde lys is die elemente gekoppel aan beide agtertoe en vorentoe. Die invoeging en verwydering van elemente met behulp van 'n LinkedList is vinniger as die ArrayList. Die LinkedList implementeer beide lys en waglys. Vektor is soortgelyk aan ArrayList, maar dit is loopvlakveilig omdat al die metodes gesinchroniseer is.

Wat is ingestel?

Set is 'n koppelvlak wat die versameling-koppelvlak uitbrei. Aangesien Set-koppelvlak versameling uitbrei, behoort al die metodes van versameling ook aan Set. 'n Stel ondersteun nie dupliseringswaardes nie. Daarom kan die programmeerder nie dieselfde element twee keer stoor nie. Dit handhaaf 'n unieke stel elemente. Die SortedSet-koppelvlak brei die Stel-koppelvlak uit. SortedSet hou die elemente in gesorteerde volgorde in stand. Die NavigableSet-koppelvlak brei SortedSet uit. Die NavigableSet bied navigasiemetodes soos onder, vloer, plafon, ens.

HashSet, LinkedHashSet en TreeSet is 'n paar klasse wat die Stel-koppelvlak implementeer. Die HashSet implementeer Stel-koppelvlak. Dit handhaaf nie die ingevoegde volgorde nie. As die waardes as a, x, b ingevoeg word, kan dit as, x, a, b stoor. Die LinkedSet behou die ingevoegde volgorde. As die elemente in a, x, b volgorde ingevoeg word, sal die stoorvolgorde a, x, b wees. Die TreeSet implemente Set en NavigableSet. Dit handhaaf nie die volgorde van invoeging nie, maar stoor die elemente in die gesorteerde volgorde. As die ingevoegde volgorde a, c, b is, sal die elemente gestoor word as a, b, c. Alle HashSet, LinkedHashSet en TreeSet sal geen duplikaatelemente hê nie.

Wat is die ooreenkomste tussen lys en stel?

  • Beide lys- en stel-koppelvlakke brei versameling-koppelvlak uit.
  • Beide lys en stel ondersteuningsbewerkings soos byvoeging, verwydering van elemente.

Wat is die verskil tussen lys en stel?

Lys vs Set

List Interface is die sub-koppelvlak van Collection wat metodes bevat om bewerkings uit te voer soos invoeging, verwydering gebaseer op die indeks. Stel Interface is 'n sub-koppelvlak van Collection wat metodes bevat om bewerkings uit te voer soos invoeging, verwydering van elemente terwyl die unieke elemente in stand gehou word.
Klasse
ArrayList, Vector en LinkedList is klasse wat Lys-koppelvlak implementeer. HashSet, LinkedHashSet en TreeSet is klasse wat Stel-koppelvlak implementeer.
Elementduplisering
Lys ondersteun duplisering van elemente. Set ondersteun nie duplisering van elemente nie. Elemente is uniek.

Opsomming – Lys vs Set

Versamelings word gebruik om elemente dinamies te stoor. Programmeringstale soos Java bied versameling-koppelvlak. Lys en Stel is twee koppelvlakke wat aan versameling-koppelvlak behoort. Beide koppelvlakke brei versameling uit. Hierdie artikel het die verskil tussen Lys en Stel bespreek. Die belangrikste verskil tussen Lys en Stel is dat Lys die stoor van dieselfde element verskeie kere ondersteun, terwyl Set nie die stoor van dieselfde element verskeie kere ondersteun nie. Stel handhaaf altyd unieke elemente.

Aanbeveel: