java arraylist how declare
Denna handledning förklarar hur man deklarerar, initialiserar och skriver ut Java ArrayList med kodexempel. Du kommer också att lära dig mer om 2D Arraylist & Implementation of ArrayList in Java:
Java Collections Framework och List-gränssnittet förklarades i detalj i våra tidigare handledning. ArrayList är en datastruktur som ingår i Collections Framework och kan ses som liknar matriser och vektorer.
ArrayList kan uppfattas som en dynamisk matris som låter dig lägga till eller ta bort element från den när som helst eller helt enkelt sagt dynamiskt.
=> Ta en titt på Java-nybörjarguiden här.
Med andra ord kan dess storlek öka eller minska dynamiskt till skillnad från matriser vars storlek förblir statisk en gång deklareras.
Vad du kommer att lära dig:
- ArrayList-klass i Java
- Slutsats
ArrayList-klass i Java
ArrayList-datastrukturen i Java representeras av ArrayList-klassen som är en del av ” java.util ”Paket.
Hierarkin för ArrayList-klassen visas nedan.
Som du kan se implementerar ArrayList-klassen List-gränssnittet som i sin tur sträcker sig från Collection-gränssnittet.
Den allmänna definitionen av ArrayList-klassen ges nedan:
public class ArrayList extends AbstractList implements List,RandomAccess, Cloneable, Serializable
Här är några av de särskiljande egenskaperna hos ArrayList:
- ArrayList-klassen Java lagrar element genom att bibehålla insättningsordningen.
- ArrayList tillåter dubbla element som lagras i den.
- ArrayList är inte synkroniserad, den viktigaste punkten som skiljer ArrayList från Vector-klassen i Java.
- ArrayList i Java är mer identisk med vektorer i C ++.
- ArrayList i Java använder också index som arrays och stöder slumpmässig åtkomst.
- Åtgärderna som manipulerar element i ArrayList är långsamma eftersom det krävs en hel del förskjutning av element om något element ska tas bort från ArrayList.
- ArrayList-klassen kan inte innehålla primitiva typer utan bara objekt. I det här fallet kallar vi det vanligtvis som ”ArrayList of objects”. Så om du vill lagra heltal element, måste du använda heltalet i omslagsklassen och inte primitiv typ int.
Skapa och förklara ArrayList
För att kunna använda ArrayList-klassen i ditt program måste du inkludera den först i ditt program med hjälp av 'import' -direktivet som visas nedan:
import java.util.ArrayList;
ELLER
import java.util.*; //this will include all classes from java.util package
När du har importerat ArrayList-klassen i ditt program kan du skapa ett ArrayList-objekt.
Den allmänna syntaxen för ArrayList är:
ArrayList arrayList = new ArrayList ();
Bortsett från ovanstående uttalande som använder standardkonstruktör, erbjuder ArrayList-klassen också andra överbelastade konstruktörer som du kan använda för att skapa ArrayList.
Konstruktörmetoder
ArrayList-klassen i Java tillhandahåller följande konstruktormetoder för att skapa ArrayList.
Metod nr 1: ArrayList ()
Den här metoden använder standardkonstruktören för ArrayList-klassen och används för att skapa en tom ArrayList.
Den allmänna syntaxen för denna metod är:
ArrayList list_name = new ArrayList();
Till exempel, Du kan skapa en generisk ArrayList av typen String med följande uttalande.
ArrayList arraylist = new ArrayList();
Detta skapar en tom ArrayList med namnet 'arraylist' av typen String.
Metod # 2: ArrayList (int-kapacitet)
Den här överbelastade konstruktören kan användas för att skapa en ArrayList med den angivna storleken eller kapaciteten som ett argument till konstruktören.
Den allmänna syntaxen för denna metod är:
ArrayList list_name = new ArrayList(int capacity);
Exempel:
ArrayList arraylist = new ArrayList(10);
Ovanstående uttalande skapar en tom ArrayList med namnet 'arraylist' av typen Integer med kapacitet 10.
Metod # 3: ArrayList (samling c)
Den tredje överbelastade konstruktören för ArrayList-klassen tar en redan existerande samling som ett argument och skapar en ArrayList med elementen från den angivna samlingen c som sina ursprungliga element.
Den allmänna syntaxen för initialiseringen av ArrayList med den här konstruktorn är:
ArrayList list_name = new ArrayList (Collection c)
Till exempel, om intList är en befintlig samling med element {10,20,30,40,50}, kommer följande uttalande att skapa en lista 'arraylist' med innehållet i intList som dess ursprungliga element.
ArrayList ArrayList = new ArrayList(intList);
ArrayList-klassen stöder också olika metoder som kan användas för att manipulera innehållet i listan. Vi kommer att diskutera dessa metoder i detalj i vår kommande handledning 'ArrayList-metoder i Java'.
Initiera ArrayList i Java
När ArrayList har skapats finns det flera sätt att initialisera ArrayList med värden. I detta avsnitt kommer vi att diskutera dessa sätt.
# 1) Använda Arrays.asList
Här kan du skicka en array konverterad till lista med asList-metoden i arrays-klassen för att initialisera ArrayList.
Allmän syntax:
ArrayList arrayListName = new ArrayList( Arrays.asList (Object o1, Object o2, …, Object on));
Exempel:
import java.util.*; public class Main { public static void main(String args()) { //create and initialize ArrayList object myList with Arrays.asList method ArrayList myList = new ArrayList( Arrays.asList('One', 'Two', 'Three')); //print the ArrayList System.out.println('List contents:'+myList); } }
Produktion:
# 2) Använda Anonym inre klassmetod
Här använder vi den anonyma inre klassen för att initialisera ArrayList till värden.
Den allmänna syntaxen för att använda en anonym inre klass för ArrayList-initialisering är följande:
ArrayListarraylistName = new ArrayList(){{ add(Object o1); add (Object o2);… add (Object on);}};
Exempel:
import java.util.*; public class Main { public static void main(String args()) { //create and initialize ArrayList with anonymous inner class calls ArrayList colors = new ArrayList(){{ add('Red'); add('Blue'); add('Purple'); }}; //print the ArrayList System.out.println('Content of ArrayList:'+colors); } }
Produktion:
# 3) Använda Add Method
Detta är den vanliga metoden för att lägga till element i vilken samling som helst.
Den allmänna syntaxen för att använda add-metoden för att lägga till element i ArrayList är:
ArrayListArraylistName = new ArrayList(); ArraylistName.add(value1); ArraylistName.add(value2); ArraylistName.add(value3);
Programmeringsexempel:
import java.util.*; public class Main { public static void main(String args()) { //create ArrayList ArrayList colors = new ArrayList(); //add elements to the ArrayList using add method colors.add('Red'); colors.add('Green'); colors.add('Blue'); colors.add('Orange'); //print the ArrayList System.out.println('Content of ArrayList:'+colors); }
Produktion:
# 4) Använda Collection.nCopies Method
Denna metod används för att initialisera ArrayList med samma värden. Vi anger antalet element som ska initieras och det ursprungliga värdet till metoden.
Initialiseringens allmänna syntax är:
ArrayList arrayListName = new ArrayList(Collections.nCopies(count, element));
Nedanstående exempel visar initiering av array med metoden Collections.nCopies.
import java.util.*; public class Main { public static void main(String args()) { //create ArrayList with 10 elements //initialized to value 10 using Collections.nCopies ArrayList intList = new ArrayList(Collections.nCopies(10,10)); //print the ArrayList System.out.println('Content of ArrayList:'+intList); } }
Produktion:
Iterera genom ArrayList
Vi har följande sätt att gå igenom eller gå igenom ArrayList:
- Använder för loop
- Med för-varje slinga (förbättrad for-loop).
- Använda Iterator-gränssnittet.
- Genom ListIterator-gränssnitt.
- Genom metoden forEachRemaining ().
I själva verket används dessa metoder för att iterera genom samlingar i allmänhet. Vi kommer att se exempel på var och en av metoderna med avseende på ArrayList i denna handledning.
# 1) Använda för loop
En indexbaserad loop kan användas för att korsa ArrayList och skriva ut dess element.
Följande är ett exempel för att korsa och skriva ut ArrayList med hjälp av for loop.
import java.util.*; public class Main { public static void main(String() args) { //create a list List intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using for-loop:'); //use for loop to traverse through its elements and print it for(int i=0;i Produktion:

Detta är det enklaste och enklaste sättet att korsa och skriva ut elementen i ArrayList och fungerar på samma sätt även när det gäller andra samlingar.
# 2) Av för varje slinga (förbättrad för slinga)
Du kan också korsa ArrayList med en för varje slinga eller den förbättrade för slingan. Före Java 8 inkluderade den inte lambdauttryck. Men från och med Java 8 kan du också inkludera Lambda-uttryck i slingan för varje slinga.
Programmet nedan visar genomskärning och utskrift av ArrayList med hjälp av varje slinga och lambdauttryck.
import java.util.*; public class Main { public static void main(String() args) { //create a list List intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using for-each loop:'); //use for-each loop to traverse through its elements and print it intList.forEach(val ->{ System.out.print(val + ' '); }); } }
Produktion:

# 3) Använda Iterator Interface
Vi har sett Iterator-gränssnittet i detalj i våra tidigare ämnen. Iteratorgränssnittet kan användas för att iterera genom ArrayList och skriva ut dess värden.
Följande program visar detta.
import java.util.*; public class Main { public static void main(String() args) { //create a list List intList = new ArrayList(); intList.add(5); intList.add(10); intList.add(15); intList.add(20); intList.add(25); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using Iterator interface:'); //Traverse through the ArrayList using iterator Iterator iter=arraylist.iterator(); while(iter.hasNext()){ System.out.print(iter.next() + ' '); } } }
Produktion:

# 4) Genom ListIterator-gränssnitt
Du kan också korsa ArrayList med ListIterator. ListIterator kan användas för att korsa ArrayList både framåt och bakåt.
Låt oss implementera ett Java-program som visar ett exempel på att använda ListIterator.
import java.util.*; class Main{ public static void main(String args()){ //create a list and initiliaze it List colors_list=new ArrayList();//Creating arraylist colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Cyan'); colors_list.add('Magenta'); colors_list.add('Yellow'); System.out.println('The contents of the list using ListIterator:'); //Traverse the list using ListIterator ListIterator color_iter=colors_list.listIterator(colors_list.size()); while(color_iter.hasPrevious()) { String str=color_iter.previous(); System.out.print(str + ' '); } } }
Produktion:

Som du kan se från utdata, i det ovanstående programmet korsas ArrayList i bakåtriktning med hasPrevious () och tidigare () metoder i ListIterator.
# 5) Av metoden ForEachRemaining ()
Detta är en av metoderna för att korsa ArrayList och är tillgänglig sedan Java 8.
Följande program visar metoden forEachRemaining () för att korsa ArrayList.
import java.util.*; class Main{ public static void main(String args()){ //create a list and initiliaze it List colors_list=new ArrayList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Cyan'); colors_list.add('Magenta'); colors_list.add('Yellow'); System.out.println('The contents of the list using forEachRemaining() method:'); //Traverse the list using forEachRemaining () method Iterator itr=colors_list.iterator(); itr.forEachRemaining(val-> //lambda expression { System.out.print(val + ' '); }); } }
Produktion:

Python intervju frågor och svar för testare
Vi använder metoden forEachRemaining () tillsammans med en Iterator. Det liknar var och en och vi använder lambdauttryck i den här metoden.
ArrayList Java Exempel
I det här avsnittet kommer vi att se ArrayList-implementeringen i Java. Som ett exempel kommer vi att implementera ett komplett exempel från att skapa, initiera och använda Java ArrayList för att utföra olika manipulationer.
import java.util.ArrayList; class Main { public static void main(String() args) { //Creating a generic ArrayList ArrayList newList = new ArrayList(); //Size of arrayList System.out.println('Original size of ArrayList at creation: ' + newList.size()); //add elements to it newList.add('IND'); newList.add('USA'); newList.add('AUS'); newList.add('UK'); //print the size after adding elements System.out.println('ArrayList size after adding elements: ' + newList.size()); //Print ArrayList contents System.out.println('Contents of the ArrayList: ' + newList); //Remove an element from the list newList.remove('USA'); System.out.println('ArrayList contents after removing element(USA): ' + newList); //Remove another element by index newList.remove(2); System.out.println('ArrayList contents after removing element at index 2: ' + newList); //print new size System.out.println('Size of arrayList: ' + newList.size()); //print list contents System.out.println('Final ArrayList Contents: ' + newList); } }
Produktion:

Tvådimensionell ArrayList i Java
Vi vet att en ArrayList inte har dimensioner som Arrays. Men vi kan ha kapslat ArrayLists som också kallas '2D ArrayLists' eller 'ArrayList of ArrayLists'.
Den enkla tanken bakom dessa kapslade ArrayLists är att med tanke på en ArrayList är varje element i denna ArrayList en annan ArrayList.
Låt oss förstå detta med hjälp av följande program.
import java.util.*; public class Main { public static void main(String() args) { int num = 3; // declare an arrayList of ArrayLists or 2D ArrayList ArrayList intList = new ArrayList (num); // Create individual elements or ArrayLists and add them to intList as elements ArrayList list_elem1 = new ArrayList(); list_elem1.add(10); intList.add(list_elem1); ArrayList list_elem2 = new ArrayList(); list_elem2.add(20); list_elem2.add(30); intList.add(list_elem2); ArrayList list_elem3 = new (); list_elem3.add(40); list_elem3.add(50); list_elem3.add(60); intList.add(list_elem3); System.out.println('Contents of 2D ArrayList(Nested ArrayList):'); //print the 2D ArrayList or nested ArrayList for (int i = 0; i Produktion:

Ovanstående program visar 2D ArrayList. Här för det första förklarar vi en ArrayList av ArrayLists. Sedan definierar vi enskilda ArrayLists som kommer att fungera som enskilda element i kapslad ArrayList när vi lägger till var och en av dessa ArrayLists till nestad ArrayList.
För att få åtkomst till varje element i ArrayList måste vi ringa get-metoden två gånger. Först för att komma åt raden i den kapslade ArrayList och sedan för att komma åt den enskilda skärningspunkten mellan rad och kolumn.
Observera att du kan öka de kapslade nivåerna av ArrayList för att definiera flerdimensionella ArrayLists. Till exempel, 3D ArrayList kommer att ha 2D ArrayLists som dess element och så vidare.
Vanliga frågor
F # 1) Vad är ArrayList i Java?
Svar: En ArrayList i Java är en dynamisk matris. Det kan ändras i sin natur, dvs. det ökar i storlek när nya element läggs till och krymper när element raderas.
F # 2) Vad är skillnaden mellan Array och ArrayList?
Svar: En matris är i statisk struktur och dess storlek kan inte ändras när den förklarats. En ArrayList är en dynamisk matris och ändrar dess storlek när element läggs till eller tas bort.
Arrayen är en grundstruktur i Java medan en ArrayList är en del av Collection Framework i Java. En annan skillnad är att medan Array använder abonnemang (()) för att komma åt element, använder ArrayList metoder för att komma åt dess element.
F # 3) Är ArrayList en lista?
Svar: ArrayList är en undertyp av listan. ArrayList är en klass medan List är ett gränssnitt.
F # 4) Är ArrayList en samling?
Svar: Nej. ArrayList är en implementering av Collection som är ett gränssnitt.
F # 5) Hur ökar ArrayList sin storlek?
Svar: Internt ArrayList implementeras som en Array. ArrayList har en storleksparameter. När elementen läggs till i ArrayList och storleksvärdet uppnås lägger ArrayList internt till en annan array för att tillgodose nya element.
Slutsats
Detta var handledningen om grunderna i ArrayList-klassen i Java. Vi har sett skapandet och initialiseringen av ArrayList-klassen tillsammans med en detaljerad programmeringsimplementering av ArrayList.
Vi diskuterade också 2D och flerdimensionella ArrayLists. ArrayList-klassen stöder de olika metoderna som vi kan använda för att manipulera elementen. I våra kommande handledning kommer vi att ta upp dessa metoder.
=> Läs igenom Easy Java Training Series.
Rekommenderad läsning
- Java Array - Förklara, skapa och initialisera en array i Java
- Java Array - Hur man skriver ut delar av en array i Java?
- Java-distribution: Skapande och utförande av Java JAR-fil
- Java List - Hur man skapar, initialiserar och använder lista i Java
- Java Virtual Machine: Hur JVM hjälper till att köra Java-applikationen
- Objektuppsättning i Java: Hur man skapar, initierar och använder
- Åtkomstmodifierare i Java - Handledning med exempel
- Java Reflection Tutorial med exempel