Samling (programmering)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 28 augusti 2018; kontroller kräver 9 redigeringar .

En samling i programmering är ett programobjekt som på ett eller annat sätt innehåller en uppsättning värden av en eller olika typer, och låter dig komma åt dessa värden.

En samling gör att värden kan skrivas till och hämtas. Syftet med en samling är att fungera som ett förråd av objekt och ge tillgång till dem. Vanligtvis används samlingar för att lagra grupper av objekt av samma typ som är föremål för stereotyper. Olika metoder kan användas för att komma åt ett visst element i en samling, beroende på dess logiska organisation. En implementering KAN tillåta att enskilda operationer utförs på samlingar som helhet. Närvaron av operationer på samlingar kan i många fall förenkla programmeringen avsevärt.

Samlingar och behållare

En samling eller behållare grupperar ihop ett variabelt (eventuellt noll) antal dataelement som har något gemensamt värde för att lösa ett problem. De opereras på något sätt. Vanligtvis är dataelementen av samma typ, eller (på språk som stöder nedärvning ) kommer typerna att härledas från någon vanlig förfadertyp. En samling är ett koncept som tillämpas på abstrakta datatyper och föreskriver inte en specifik implementering genom en viss datastruktur, även om det ofta finns ett väletablerat val. Behållare i typteorin  är abstraktioner som gör att samlingar av olika strukturer, såsom listor och träd , kan representeras på något enhetligt sätt. En ( unär ) behållare definieras av index S och en familj av typer vid positioner P indexerade med S: en funktion från indextyper till elementtyp ges. Behållare kan ses som kanoniska klasser för samlingar av olika typer. Listor indexeras genom naturliga tal (inklusive noll ). Listor har ett maximalt index. För träd kan trädets struktur uttryckas i termer av index utan specifik information om innehållet i noderna. Index av strukturelement i minnet är isomorfa till vägar från trädets rot till dess noder .

Klassificering

Enligt allmänna egenskaper

Enligt organisationens logik

Beroende på hur tillgången till insamlingsdata är logiskt organiserad, särskiljs följande huvudtyper:

Genom implementering

På implementeringsnivå kan en samling vara en av följande datastrukturer:

Operationer på samlingar

Beroende på den booleska typen av samlingen och på implementeringen kan olika operationer på samlingar i allmänhet stödjas. I alla fall kan operationer endast utföras på par av samlingar av samma typ (och, om samlingarna inte är heterogena, med samma typ av element). Följande operationer kan också stödjas:

Anmärkningsvärda implementeringar

Se även

Anteckningar

Länkar