De flesta programmeringsspråk använder arrays för att lagra en uppsättning data av samma typ. En stor nackdel med arrays är att, när arraystorleken är deklarerad, kan den inte ändras. Om programmeraren vill lagra värden 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, radera element och många andra operationer med stöd av samlingar. Det finns olika typer av samlingar tillgängliga i programmeringsspråk som Java. List och Set är gränssnitt för samlingar hierarki. Gränssnittet för andra gränssnitt är samling. De nyckelskillnad mellan lista och set är det List stöder lagring av samma element flera gånger medan Set inte stöder att lagra samma element flera gånger. Därför tillåter inte en uppsättning dubbelarbete.
1. Översikt och nyckelskillnad
2. Vad är List
3. Vad är Set
4. Likheter mellan lista och uppsättning
5. Jämförelse vid sida vid sida - Lista vs Ange i tabellform
6. Sammanfattning
Listan är ett gränssnitt som utökar samlingsgränssnittet. Det finns ett antal metoder i samlingsgränssnittet. Lägg till metoden hjälper till att lägga till ett element. "Ta bort metod" är att ta bort ett element. Det finns 'addAll-metod' för att lägga till flera element medan 'removeAll-metod' för att ta bort elementen från samlingen. Innehållsmetoden hjälper till att hitta om ett visst objekt är närvarande i listan eller inte. "ContainsAll" är att hitta om en uppsättning objekt är närvarande i samlingen. Iteratormetoden används för att slinga igenom objekten i listan. Eftersom List utökar samlingen tillhör alla samlingsmetoderna List. Annat än dessa metoder har listan metoder som get och set. Programmeraren kan få ett värde på ett visst index med hjälp av få-metoden. Programmeraren kan ange ett värde vid ett visst index med hjälp av den inställda metoden. IndexOf används för att hitta index för ett element.
I en lista kan operationerna utföras enligt positionen. Programmeraren kan tillhandahålla det dataelement som ska läggas till i indexet. Så det kommer att läggas till det specifika indexet. Om programmeraren inte ger index, läggs elementet till slutet av listan. Den upprätthåller också den införda beställningen. Om element 1 läggs till och då element2 läggs till kommer element1 att vara före element2.
Figur 01: Lista och uppsättning
ArrayList, LinkedList, Vector är några klasser som implementerar List. I en ArrayList är åtkomst till ett element snabbt men infogning och radering är lägre. ArrayList är inte trådsäker. Att komma åt samma ArrayList från flera trådar kan inte ge samma resultat. I en LinkedList är elementen kopplade 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 lista och kö båda. Vector liknar ArrayList, men det är slitbanksäker eftersom alla metoder är synkroniserade.
Set är ett gränssnitt som utökar samlingsgränssnittet. Eftersom Set-gränssnittet utökar samlingen, hör också alla metoder för samling till Set. En uppsättning stöder inte dubbelvärden. Därför kan programmeraren inte lagra samma element två gånger. Det upprätthåller en unik uppsättning av element. SortedSet-gränssnittet utökar inställningsgränssnittet. SortedSet upprätthåller elementen i sorterad ordning. NavigableSet-gränssnittet utökar SortedSet. NavigableSet ger navigationsmetoder som underlag, golv, tak mm.
HashSet, LinkedHashSet och TreeSet är några klasser som implementerar Set-gränssnittet. De HashSet redskap Sätta gränssnitt. Den behåller inte den inmatade beställningen. Om värdena är införda som a, x, b kan det lagras som, x, a, b. De LinkedSet upprätthåller den införda beställningen. Om elementen läggs in i en, x, b-ordning, kommer lagringsordningen att vara a, x, b. De TreeSet implementerar Set och NavigableSet. Det behåller inte ordningsföljden för inmatning men lagrar elementen i den sorterade ordningen. Om den inmatade ordningen är a, c, b, kommer elementen att lagras som a, b, c. Alla HashSet, LinkedHashSet och TreeSet har inga dubbla element.
Lista vs Set | |
Listgränssnittet är undergränssnittet för samling som innehåller metoder för att utföra operationer som infoga, ta bort baserat på indexet. | Set Interface är ett undergränssnitt för samling som innehåller metoder för att utföra operationer som att infoga, ta bort element medan de unika elementen bibehålls. |
Klasser | |
ArrayList, Vector och LinkedList är klasser som implementerar listgränssnittet. | HashSet, LinkedHashSet och TreeSet är klasser som implementerar Set interface. |
Elementduplikering | |
Listen stöder duplicering av element. | Set stöder inte duplicering av element. Elementen är unika. |
Samlingar används för att lagra element dynamiskt. Programmeringsspråk som Java tillhandahåller samlingsgränssnitt. List och Set är två gränssnitt som hör till samlingsgränssnittet. Båda gränssnitten omfattar samling. I denna artikel diskuterades skillnaden mellan lista och uppsättning. Nyckelförskjutningen mellan List och Set är att List stöder att lagra samma element flera gånger medan Set inte stöder att lagra samma element flera gånger. Set håller alltid unika element.
1.Point, handledning. "Java-samlingar"., Tutorials Point, 8 jan 2018. Tillgänglig här