java arraylist how declare
Denne opplæringen forklarer hvordan du kan erklære, initialisere og skrive ut Java ArrayList med kodeeksempler. Du vil også lære om 2D Arraylist & Implementation of ArrayList in Java:
Java Collections Framework og List-grensesnittet ble forklart i detalj i våre tidligere opplæringsprogrammer. ArrayList er en datastruktur som er en del av Collections Framework og kan sees på som lik matriser og vektorer.
ArrayList kan oppfattes som et dynamisk utvalg som lar deg legge til eller fjerne elementer fra det når som helst eller ganske enkelt sagt dynamisk.
=> Ta en titt på Java Beginners Guide her.
Med andre ord kan størrelsen øke eller redusere dynamisk i motsetning til matriser hvis størrelse forblir statisk når de er erklært.
Hva du vil lære:
- ArrayList-klasse i Java
- Konklusjon
ArrayList-klasse i Java
ArrayList-datastrukturen i Java er representert av ArrayList-klassen som er en del av “ java.util ”Pakke.
Hierarkiet for ArrayList-klassen er vist nedenfor.
Som du kan se, implementerer ArrayList-klassen List-grensesnittet som igjen strekker seg fra Collection-grensesnittet.
Den generelle definisjonen av ArrayList-klassen er gitt nedenfor:
public class ArrayList extends AbstractList implements List,RandomAccess, Cloneable, Serializable
Her er noen av de karakteristiske egenskapene til ArrayList:
- ArrayList-klassen av Java lagrer elementer ved å opprettholde innsettingsrekkefølgen.
- ArrayList tillater dupliserte elementer som er lagret i den.
- ArrayList er ikke synkronisert, det viktigste poenget som skiller ArrayList fra Vector-klassen i Java.
- ArrayList i Java er mer identisk med vektorer i C ++.
- ArrayList i Java bruker også indekser som arrays og støtter tilfeldig tilgang.
- Operasjonene som manipulerer elementer i ArrayList, går tregt, ettersom mye forskyvning av elementer må gjøres hvis noe element skal fjernes fra ArrayList.
- ArrayList-klassen kan ikke inneholde primitive typer, men bare objekter. I dette tilfellet kaller vi det vanligvis som ‘ArrayList of objects’. Så hvis du vil lagre heltallstyper av elementer, må du bruke Integer-objektet til wrapper-klassen og ikke primitiv type int.
Opprett og erklær ArrayList
For å kunne bruke ArrayList-klassen i programmet ditt, må du inkludere det først i programmet ditt ved å bruke 'import' -direktivet som vist nedenfor:
import java.util.ArrayList;
ELLER
import java.util.*; //this will include all classes from java.util package
Når du har importert ArrayList-klassen i programmet ditt, kan du opprette et ArrayList-objekt.
Den generelle syntaksen for opprettelse av ArrayList er:
ArrayList arrayList = new ArrayList ();
Bortsett fra den ovennevnte uttalelsen som bruker standardkonstruktør, gir ArrayList-klassen også andre overbelastede konstruktører som du kan bruke til å lage ArrayList.
Konstruktormetoder
ArrayList-klassen i Java gir følgende konstruktormetoder for å lage ArrayList.
Metode nr. 1: ArrayList ()
Denne metoden bruker standardkonstruktøren til ArrayList-klassen og brukes til å lage en tom ArrayList.
Den generelle syntaksen for denne metoden er:
ArrayList list_name = new ArrayList();
For eksempel, Du kan opprette en generisk ArrayList av typen String ved å bruke følgende utsagn.
ArrayList arraylist = new ArrayList();
Dette vil opprette en tom ArrayList med navnet 'arraylist' av typen String.
Metode nr.2: ArrayList (int kapasitet)
Denne overbelastede konstruktøren kan brukes til å lage en ArrayList med den angitte størrelsen eller kapasiteten som er gitt som et argument til konstruktøren.
Den generelle syntaksen for denne metoden er:
ArrayList list_name = new ArrayList(int capacity);
Eksempel:
ArrayList arraylist = new ArrayList(10);
Ovennevnte uttalelse oppretter en tom ArrayList med navnet 'arraylist' av typen Integer med kapasitet 10.
Metode nr.3: ArrayList (samling c)
Den tredje overbelastede konstruktøren for ArrayList-klassen tar en allerede eksisterende samling som et argument og oppretter en ArrayList med elementene fra den spesifiserte samlingen c som de første elementene.
Den generelle syntaksen for initialiseringen av ArrayList ved hjelp av denne konstruktøren er:
ArrayList list_name = new ArrayList (Collection c)
For eksempel, Hvis intList er en eksisterende samling med elementene {10,20,30,40,50}, vil følgende utsagn opprette en liste 'arraylist' med innholdet i intList som de første elementene.
ArrayList ArrayList = new ArrayList(intList);
ArrayList-klassen støtter også forskjellige metoder som kan brukes til å manipulere innholdet i listen. Vi vil diskutere disse metodene i detalj i vår kommende opplæring 'ArrayList-metoder i Java'.
Initialiser ArrayList i Java
Når ArrayList er opprettet, er det flere måter å initialisere ArrayList med verdier på. I denne delen vil vi diskutere disse måtene.
# 1) Bruke Arrays.asList
Her kan du sende en matrise konvertert til liste ved hjelp av asList-metoden i Arrays-klassen for å initialisere ArrayList.
Generell syntaks:
ArrayList arrayListName = new ArrayList( Arrays.asList (Object o1, Object o2, …, Object on));
Eksempel:
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); } }
Produksjon:
# 2) Bruke Anonym indre klassemetode
Her bruker vi den anonyme indre klassen til å initialisere ArrayList til verdier.
Den generelle syntaksen for bruk av en anonym indre klasse for ArrayList-initialisering er som følger:
ArrayListarraylistName = new ArrayList(){{ add(Object o1); add (Object o2);… add (Object on);}};
Eksempel:
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); } }
Produksjon:
# 3) Bruk add metode
Dette er den vanlige metoden for å legge til elementer i enhver samling.
Den generelle syntaksen for bruk av add-metode for å legge til elementer i ArrayList er:
ArrayListArraylistName = new ArrayList(); ArraylistName.add(value1); ArraylistName.add(value2); ArraylistName.add(value3);
Programmeringseksempel:
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); }
Produksjon:
# 4) Bruke Collection.nCopies Method
Denne metoden brukes til å initialisere ArrayList med de samme verdiene. Vi gir antall elementer som skal initialiseres, og den opprinnelige verdien til metoden.
Den generelle syntaksen for initialisering er:
ArrayList arrayListName = new ArrayList(Collections.nCopies(count, element));
Eksemplet nedenfor viser initialisering av array ved hjelp av Collections.nCopies-metoden.
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); } }
Produksjon:
Iterere gjennom ArrayList
Vi har følgende måter å krysse gjennom eller løpe gjennom ArrayList:
- Bruker for loop
- Ved for-hver løkke (forbedret for-løkke).
- Bruke Iterator-grensesnittet.
- Av ListIterator-grensesnitt.
- Ved metoden forEachRemaining ().
Faktisk brukes disse metodene til å gjenta gjennom samlinger generelt. Vi vil se eksempler på hver av metodene med hensyn til ArrayList i denne opplæringen.
# 1) Bruker for loop
En indeksbasert for loop kan brukes til å krysse ArrayList og skrive ut elementene.
Følgende er et eksempel for å krysse og skrive ut ArrayList ved hjelp 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 Produksjon:
Dette er den enkleste og enkleste måten å krysse og skrive ut elementene i ArrayList og fungerer på samme måte i tilfelle andre samlinger også.
# 2) Av for-hver loop (forbedret for loop)
Du kan også krysse ArrayList ved hjelp av en for-hver loop eller den forbedrede for loop. Før Java 8 inkluderte den ikke lambdauttrykk. Men fra Java 8 og utover kan du også inkludere Lambda-uttrykk i for-hver løkke.
Programmet nedenfor viser gjennomkjøring og utskrift av ArrayList ved hjelp av hvert loop- og lambdauttrykk.
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 + ' '); }); } }
Produksjon:
# 3) Bruke Iterator-grensesnitt
Vi har sett Iterator-grensesnittet i detalj i våre tidligere emner. Iterator-grensesnittet kan brukes til å iterere gjennom ArrayList og skrive ut verdiene.
Det følgende programmet viser dette.
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() + ' '); } } }
Produksjon:
# 4) Av ListIterator-grensesnitt
Du kan også krysse ArrayList ved hjelp av ListIterator. ListIterator kan brukes til å krysse ArrayList i både fremover og bakover retning.
La oss implementere et Java-program som viser et eksempel på bruk av 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 + ' '); } } }
Produksjon:
Som du kan se fra utdataene, krysses ArrayList i det ovennevnte programmet i bakoverretning ved hjelp av hasPrevious () og forrige () metoder for ListIterator.
# 5) Av forEachRemaining () Method
Dette er en av metodene for å krysse ArrayList og er tilgjengelig siden Java 8.
Det følgende programmet viser metoden forEachRemaining () for å krysse 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 + ' '); }); } }
Produksjon:
verktøy for stor dataanalyse med åpen kildekode
Vi bruker metoden forEachRemaining () sammen med en Iterator. Det ligner på hver, og vi bruker lambdauttrykk inne i denne metoden.
ArrayList Java-eksempel
I denne delen vil vi se implementeringen av ArrayList i Java. Som et eksempel vil vi implementere et komplett eksempel fra å lage, initialisere og bruke Java ArrayList til å utføre forskjellige manipulasjoner.
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); } }
Produksjon:
To-dimensjonal ArrayList i Java
Vi vet at en ArrayList ikke har dimensjoner som Arrays. Men vi kan ha nestet ArrayLists som også kalles ‘2D ArrayLists’ eller ‘ArrayList of ArrayLists’.
Den enkle ideen bak disse nestede ArrayLists er at gitt en ArrayList, er hvert element i denne ArrayList en annen ArrayList.
La oss forstå dette ved hjelp av følgende 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 Produksjon:
Ovennevnte program viser 2D ArrayList. Her erklærer vi først en ArrayList of ArrayLists. Deretter definerer vi individuelle ArrayLists som vil tjene som individuelle elementer i nestet ArrayList når vi legger til hver av disse ArrayLists i Nested ArrayList.
For å få tilgang til hvert element i ArrayList, må vi ringe get-metoden to ganger. Først for å få tilgang til raden i Nested ArrayList og deretter for å få tilgang til det individuelle skjæringspunktet mellom rad og kolonne.
Merk at du kan øke de nestede nivåene av ArrayList for å definere flerdimensjonale ArrayLists. For eksempel, 3D ArrayList vil ha 2D ArrayLists som sine elementer og så videre.
ofte stilte spørsmål
Q # 1) Hva er ArrayList i Java?
Svar: En ArrayList i Java er et dynamisk utvalg. Det kan endres i naturen, dvs. det øker i størrelse når nye elementer legges til og krymper når elementene slettes.
Q # 2) Hva er forskjellen mellom Array og ArrayList?
Svar: En serie er i statisk struktur, og størrelsen kan ikke endres når den er erklært. En ArrayList er en dynamisk matrise og endrer størrelsen når elementer legges til eller fjernes.
Matrisen er en grunnleggende struktur i Java, mens en ArrayList er en del av Collection Framework i Java. En annen forskjell er at mens Array bruker abonnement ([]) for å få tilgang til elementer, bruker ArrayList metoder for å få tilgang til elementene.
Spørsmål 3) Er ArrayList en liste?
Svar: ArrayList er en undertype av listen. ArrayList er en klasse mens List er et grensesnitt.
Q # 4) Er ArrayList en samling?
Svar: Nei. ArrayList er en implementering av Collection som er et grensesnitt.
Sp # 5) Hvordan øker ArrayList størrelsen?
Svar: Internt er ArrayList implementert som en Array. ArrayList har en størrelsesparameter. Når elementene legges til i ArrayList og størrelsesverdien er nådd, legger ArrayList internt til en annen matrise for å imøtekomme nye elementer.
Konklusjon
Dette var veiledningen om det grunnleggende i ArrayList-klassen i Java. Vi har sett opprettelsen og initialiseringen av ArrayList-klassen sammen med en detaljert programmeringsimplementering av ArrayList.
Vi diskuterte også 2D og flerdimensjonale ArrayLists. ArrayList-klassen støtter de forskjellige metodene vi kan bruke til å manipulere elementene. I våre kommende opplæringsprogrammer vil vi ta opp disse metodene.
=> Les gjennom Easy Java Training Series.
Anbefalt lesing
- Java Array - Erklære, opprette og initialisere en array i Java
- Java Array - Hvordan skrive ut elementer av en array i Java?
- Java-distribusjon: Opprettelse og utføring av Java JAR-fil
- Java List - Hvordan lage, initialisere og bruke listen i Java
- Java Virtual Machine: Hvordan JVM hjelper med å kjøre Java-applikasjoner
- Array of Objects In Java: Hvordan lage, initialisere og bruke
- Få tilgang til modifikatorer i Java - opplæring med eksempler
- Java Reflection Tutorial med eksempler