Skillnaden mellan lista och uppsättning

Innehållsförteckning:

Skillnaden mellan lista och uppsättning
Skillnaden mellan lista och uppsättning

Video: Skillnaden mellan lista och uppsättning

Video: Skillnaden mellan lista och uppsättning
Video: Difference between List and Set 2024, Juli
Anonim

Nyckelskillnad – List vs Set

De flesta programmeringsspråk använder arrayer för att lagra en uppsättning data av samma typ. En stor nackdel med arrayer är att när arraystorleken väl har deklarerats kan den inte ändras. Om programmeraren vill lagra ett värde som överstiger arraystorleken, bör han skapa en ny array och kopiera de befintliga elementen till den nya arrayen. I dessa situationer kan samlingar användas. Det är möjligt att lägga till element, ta bort element och många andra operationer med stöd av samlingar. Det finns olika typer av samlingar tillgängliga i programmeringsspråk som Java. Lista och Set är gränssnitt för samlingshierarkin. Basgränssnittet för andra gränssnitt är Collection. Den viktigaste skillnaden mellan List och Set är att List stöder lagring av samma element flera gånger medan Set inte stöder lagring av samma element flera gånger. Därför tillåter inte en uppsättning duplicering.

Vad är List?

Listan är ett gränssnitt som utökar samlingsgränssnittet. Det finns ett antal metoder i samlingsgränssnittet. Add-metoden hjälper till att lägga till ett element. "Ta bort metoden" är att ta bort ett element. Det finns "addAll-metoden" för att lägga till flera element medan "removeAll-metoden" för att ta bort elementen från samlingen. Metoden innehåller hjälper till att hitta om ett specifikt objekt finns i listan eller inte. "ContainsAll" är att ta reda på om en uppsättning objekt finns i samlingen. Iteratormetoden används för att gå igenom objekten i listan. Eftersom List utökar samlingen, tillhör alla insamlingsmetoderna List. Förutom dessa metoder har listan metoder som get och set. Programmeraren kan få ett värde vid ett specifikt index med hjälp av get-metoden. Programmeraren kan ställa in ett värde på ett specifikt index med hjälp av set-metoden. "indexOf" används för att hitta indexet för ett element.

I en lista kan operationerna utföras enligt positionen. Programmeraren kan tillhandahålla dataelementet som ska läggas till indexet. Så det kommer att läggas till det specifika indexet. Om programmeraren inte ger ett index kommer elementet att läggas till i slutet av listan. Den bibehåller också den infogade ordningen. Om element 1 läggs till och sedan element2 läggs till, kommer element1 att vara före element2.

Skillnaden mellan lista och uppsättning
Skillnaden mellan lista och uppsättning

Figur 01: Lista och ställ

ArrayList, LinkedList, Vector är några klasser som implementerar List. I en ArrayList går det snabbt att komma åt ett element, men att infoga och ta bort är lägre. ArrayList är inte trådsäker. Att komma åt samma ArrayList från flera trådar kanske inte ger samma resultat. I en LinkedList är elementen länkade till både bakåt och framåt. Att infoga och ta bort element med hjälp av en LinkedList är snabbare än ArrayList. LinkedList implementerar både lista och kö. Vector liknar ArrayList, men den är slitbanesäker eftersom alla metoder är synkroniserade.

Vad är inställt?

Set är ett gränssnitt som utökar samlingsgränssnittet. Eftersom Set-gränssnittet utökar Collection, tillhör alla metoder för Collection också Set. En uppsättning stöder inte dupliceringsvärden. Därför kan programmeraren inte lagra samma element två gånger. Den upprätthåller en unik uppsättning element. SortedSet-gränssnittet utökar Set-gränssnittet. SortedSet underhåller elementen i sorterad ordning. NavigableSet-gränssnittet utökar SortedSet. NavigableSet tillhandahåller navigeringsmetoder som nedre, golv, tak etc.

HashSet, LinkedHashSet och TreeSet är några klasser som implementerar Set-gränssnittet. HashSet implementerar Set-gränssnittet. Den bibehåller inte den infogade ordningen. Om värdena infogas som a, x, b kan det lagras som, x, a, b. LinkedSet bibehåller den infogade ordningen. Om elementen infogas i a, x, b ordning, kommer lagringsordningen att vara a, x, b. TreeSet implementerar Set och NavigableSet. Den upprätthåller inte insättningsordningen utan lagrar elementen i sorterad ordning. Om den infogade ordningen är a, c, b, kommer elementen att lagras som a, b, c. Alla HashSet, LinkedHashSet och TreeSet kommer inte att ha några dubbletter av element.

Vilka är likheterna mellan List och Set?

  • Både List- och Set-gränssnitt utökar samlingsgränssnittet.
  • Både Lista och Ange supportoperationer som att lägga till, ta bort element.

Vad är skillnaden mellan List och Set?

List vs Set

List Interface är undergränssnittet till Collection som innehåller metoder för att utföra operationer som att infoga, ta bort baserat på indexet. Set Interface är ett undergränssnitt till Collection som innehåller metoder för att utföra operationer som att infoga, ta bort element samtidigt som de unika elementen bibehålls.
Klasser
ArrayList, Vector och LinkedList är klasser som implementerar List-gränssnitt. HashSet, LinkedHashSet och TreeSet är klasser som implementerar Set-gränssnittet.
Element Duplication
List stöder duplicering av element. Set stöder inte duplicering av element. Elementen är unika.

Sammanfattning – List vs Set

Samlingar används för att lagra element dynamiskt. Programmeringsspråk som Java tillhandahåller samlingsgränssnitt. Lista och Set är två gränssnitt som hör till samlingsgränssnittet. Båda gränssnitten utökar samlingen. Den här artikeln diskuterade skillnaden mellan List och Set. Den viktigaste skillnaden mellan List och Set är att List stöder lagring av samma element flera gånger medan Set inte stöder lagring av samma element flera gånger. Setet har alltid unika element.

Rekommenderad: