Java >> Java Program >  >> Java

Java Collection Framework – En exklusiv guide om Collection Framework

Collection Framework i Java är en av de grundläggande delarna av programmeringsspråket Java. De flesta av programmeringsspråken använder huvudsakligen samlingarna.

De flesta av dem stöder olika typer av samlingar som List, Set, Queue, Stack, etc. Idag i den här artikeln kommer vi att lära oss om samlingarna i Java och hur man använder Collection Frameworks i Java.

Framöver i artikeln kommer vi också att diskutera behovet av Collection Frameworks tillsammans med deras fördelar och kommer att lära oss hierarkin för Collection Framework i Java. För bättre förståelse kommer vi att diskutera varje Java Collection Framework med exempel.

Så låt oss börja lära oss konceptet för Java Collection Framework.

Håll dig uppdaterad med de senaste tekniktrenderna, Gå med i TechVidvan på Telegram

Vad är en samling i Java?

Java Collection är en grupp av enskilda objekt i en enda enhet. Samlingar är som behållare som slår samman flera objekt till en enda enhet. Till exempel ett knippe pinnar, en lista med anställdas namn, etc.

De två huvudsakliga rotgränssnitten för Java-samlingsklasser är Insamlingsgränssnitt (java.util.Collection) och Kartgränssnitt (java.util.Map).

Collection Framework i Java

Ett samlingsramverk i Java är en enhetlig arkitektur som representerar en samling gränssnitt och klasser. Det hjälper till att lagra och bearbeta data effektivt.

Detta ramverk har flera användbara klasser som har ett antal användbara funktioner som gör en programmerares uppgift lätt. Samlingsramarna representerar och manipulerar samlingar i Java på ett standardsätt.

Vet du – Vad skiljer klasser och gränssnitt egentligen åt i Java?

Need for Collection Framework i Java

Innan Java 1.2 tillhandahöll Java några ad hoc-klasser som Vector, Properties, Stack, Hash Tables, Dictionary, etc för att lagra och manipulera en grupp objekt.

Dessa klasser var användbara men saknade ett enhetligt tema eller centralt gränssnitt. Till exempel, hur du använde egenskaperna skilde sig från hur du använder Vector. Därför, för att övervinna dessa problem, sedan JDK 1.2, introducerades konceptet Collection Framework i Java.

Insamlingsramverket uppfyllde flera mål som:

  • Det ökar effektiviteten för de grundläggande samlingarna som dynamiska arrayer, träd, länkade listor och hashtabeller, etc.
  • Låt de olika typerna av samlingar fungera på ett identiskt sätt tillsammans med en högre grad av kompatibilitet.
  • Utöka och/eller anpassa enkelt en samling.
  • Ta bort behovet av att skriva koden för att implementera datastrukturerna och algoritmerna manuellt.
  • Gör vår kod mycket effektivare eftersom Collections Framework är mycket optimerat.
  • Gör vår data unik, vi kan använda Set-gränssnittet som tillhandahålls av Collections Framework.
  • Vi kan använda kartgränssnittet för att lagra data i nyckel/värdepar.
  • Aktivera funktionaliteten för arrayer som kan ändras storlek, vi kan använda klassen ArrayList.

Komposition av Java Collection Frameworks

Alla samlingsramverk i Java inkluderar följande:

  1. Gränssnitt
  2. Implementering eller klasser
  3. Algorithmer

1. Gränssnitt

Java Collection Framework består av gränssnitt som är abstrakta datatyper som representerar samlingar. Med gränssnitt kan vi manipulera samlingarna oberoende av detaljerna i deras representation. Alla gränssnitt för samlingsramverket finns i java.util paket.

I objektorienterade språk representerar gränssnitt normalt en hierarki. Rot- eller toppnivågränssnittet i Collection Framework är java.util.Collection. Den innehåller några viktiga metoder som add(), size(), remove(), clear(), iterator() som varje Collection-klass måste implementera.

Några andra viktiga gränssnitt är java.util.List, java.util.Queue, java.util.Set och java.util.Map. Det enda gränssnittet som inte ärver samlingsgränssnittet är kartgränssnittet, men det är en del av samlingsramverket.

Lär veta mer om Java Interface i detalj med Techvidvan.

Det här avsnittet ger en översikt över några gränssnitt i Collection Framework:

S.nr. Gränssnitt  Beskrivning
1 Insamlingsgränssnittet Det här gränssnittet finns överst i samlingshierarkin och låter dig arbeta med en grupp av objekt.
2 Listgränssnittet Det här gränssnittet utökar samlingsgränssnittet och objektet i List lagrar en ordnad samling av element.
3 Set-gränssnittet Det här gränssnittet utökar också samlingsgränssnittet och hanterar uppsättningarna som innehåller unika element.
4 SortedSet-gränssnittet Detta gränssnitt utökar Set-gränssnittet för att hantera de sorterade uppsättningarna.
5 Kartgränssnittet Det här gränssnittet mappar de unika nycklarna till värden.
6 SortedMap-gränssnittet Det här gränssnittet utökar kartgränssnittet och behåller nycklarna i stigande ordning.
7 The Map.Entry Interface Det är en inre klass av en karta och representerar ett element (ett nyckel/värdepar) på en karta.
8 Uppräkningsgränssnittet Det är ett äldre gränssnitt som definierar metoderna med vilka du kan räkna upp elementen ett i taget i en samling objekt.

2. Implementeringar

Java Collections-ramverket tillhandahåller implementeringsklasser för samlingar som är de konkreta implementeringarna av samlingsgränssnitten. Kort sagt, dessa klasser är återanvändbara datastrukturer.

Vi kan använda dem om och om igen för att skapa olika typer av samlingar i Java-kod. Några viktiga klasser av samlingsramverk är ArrayList, LinkedList, HashMap, TreeMap, HashSet, TreeSet.

Dessa klasser är mer än tillräckligt för att lösa de flesta av våra krav inom programmering, men om vi fortfarande behöver någon speciell samlingsklass som vi kan utöka för att skapa våra skräddarsydda samlingsklasser.

VÄNTA! Det är rätt tid att bekanta sig med konceptet med hierarkiska datastrukturer i Java i detalj.

Följande tabell sammanfattar standardinsamlingsklasserna:

S.Nr Klass  Beskrivning
1 AbstractCollection Denna klass implementerar de flesta av samlingsgränssnitten.
2 Abstraktlista Denna klass utökar klassen AbstractCollection och implementerar de flesta av List-gränssnitten.
3 AbstractSequentialList Denna klass utökar klassen AbstractList till att använda en samling som utför sekventiell åtkomst snarare än slumpmässig åtkomst till dess element.
4 Länkad lista Denna klass implementerar en länkad lista med och utökar klassen AbstractSequentialList.
5 ArrayList Denna klass utökar klassen AbstractList och implementerar en dynamisk array.
6 AbstractSet Denna klass utökar klassen AbstractCollection och implementerar det mesta av Set-gränssnittet.
7 HashSet Denna klass utökar klassen AbstractSet till att fungera med en hashtabell.
8 LinkedHashSet Denna klass utökar klassen HashSet och tillåter iterationer i insättningsordning.
9 Träduppsättning Den här klassen utökar klassen AbstractSet och implementerar setet som är lagrat i ett träd.
10 AbstractMap Denna klass implementerar de flesta av kartgränssnitten.
11 Trädkarta Denna klass utökar klassen AbstractMap till att använda ett träd.
12 HashMap Denna klass utökar klassen AbstractMap till att använda en hashtabell.
13 WeakHashMap Denna klass utökar klassen AbstractMap och använder en hashtabell med svaga nycklar.
14 LinkedHashMap Denna klass utökar HashMap-klassen och tillåter iterationer i insättningsordning.
15 IdentityHashMap Denna klass utökar klassen AbstractMap och använder referenslikhet vid jämförelse av dokument.

3. Algoritmer

En algoritm hänvisar till de metoder som utför användbara beräkningsoperationer, såsom sökning, sortering och blandning av objekt som implementerar samlingsgränssnitt.

Algoritmerna är polymorfa:det vill säga vi kan använda samma metod på flera olika implementeringar av det lämpliga Java-samlingsgränssnittet. Vi definierar dessa algoritmer som statiska metoder inom klassen Collections.

Berika dig själv med kunskapen om Java-polymorfism.

Hierarchy of Collection Framework i Java

Vi har lärt oss att Java-samlingsramverket innehåller gränssnitt och implementeringsklasser. Låt oss nu se hierarkin för Java-samlingsramverket.

I diagrammet ovan representerar de gröna rutorna de olika gränssnitten och de orange rutorna representerar klasserna. Den fetstilta linjen representerar att ett gränssnitt utökar ett annat gränssnitt medan en streckad linje representerar att en klass implementerar ett gränssnitt.

Fördelar med Java Collection Framework

Följande är några fördelar med att använda Collection Frameworks i Java:

1. Konsekvent API: Java Collection Framework tillhandahåller ett konsekvent API som har ett viktigt arrangemang av gränssnitt som Collection, List, Set, List, Queue eller Map. Varje klass, till exempel ArrayList, LinkedList, Vector och så vidare, som implementerar dessa gränssnitt har ett normalt arrangemang av strategier.

2. Minskar programmeringsansträngning: Med hjälp av ett samlingsramverk kan en mjukvaruutvecklare fokusera på den bästa användningen av programmet snarare än att fokusera på en kontur av samlingen.

3. Ökar programkvalitet och hastighet: Collection Framework hjälper till att öka exekveringshastigheten och kvaliteten genom att ge bästa möjliga användning av värdefulla informationsstrukturer och beräkningar.

Sammanfattning

Här kommer slutet av den här artikeln, vi lärde oss grundkonceptet för Java Collection Framework med dess komponenter och hur de är ordnade i Collection Framework Hierarkin.

Vi diskuterade också kort varje gränssnitt och klass som finns i ramverket och utforskade behovet och fördelarna med Collection Framework i Java. Hoppas den här artikeln hjälpte dig att förstå konceptet med Collection Framework i Java.

Tack för att du läser vår artikel. Om du har några frågor relaterade till Java Collection Framework, låt oss veta det genom att släppa en kommentar nedan i kommentarsfältet.

Lycka till med lärandet 🙂


Java-tagg