logo

Verschil tussen Array en ArrayList

Op Java, reeks En ArrayLijst zijn de bekende datastructuren. Een array is een basisfunctionaliteit die door Java wordt geboden, terwijl ArrayLijst is een klasse van het Java Collections-framework. Het is van java.util pakket.

Java-array

Een reeks is een dynamisch gemaakt object. Het dient als een container die het constante aantal waarden van hetzelfde type bevat. Het heeft een aaneengesloten geheugenlocatie. Zodra een array is gemaakt, kunnen we de grootte ervan niet meer wijzigen. We kunnen een array maken met behulp van de volgende instructie:

 int array[]=new int[size]; 

Met de bovenstaande instructie wordt een array van de opgegeven grootte gemaakt. Wanneer we proberen meer toe te voegen dan zijn grootte, gooit hij ArrayIndexOutOfBoundsException . Bijvoorbeeld:

 int arr[]=new int[3]; //specified size of array is 3 //adding 4 elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; 

Java ArrayList-klasse

Op Java, ArrayLijst is een klasse van Collections-framework. Het implementeert Lijst, verzameling, itereerbaar, kloonbaar, serialiseerbaar , En Willekeurige toegang interfaces. Het strekt zich uit SamenvattingLijst klas.

We kunnen een exemplaar van ArrayList maken met behulp van de volgende instructie:

 ArrayList arrayList=new ArrayList(); 

ArrayList wordt intern ondersteund door de array in Java. De bewerking voor het wijzigen van de grootte in ArrayList vertraagt ​​de prestaties omdat er sprake is van een nieuwe array en het kopiëren van inhoud van een oude array naar een nieuwe array. Het roept de native geïmplementeerde methode aan System.arraycopy(sec, srcPos, dest, destPos, lengte) .

We kunnen het primitieve type niet opslaan in ArrayList. Het slaat dus alleen objecten op. Het converteert het primitieve type automatisch naar een object. We hebben bijvoorbeeld een ArrayList-object gemaakt,

 ArrayList list=new ArrayList(); //object of ArrayList arrayObj.add(12); //trying to add integer primitive to the ArrayList 

De JVM converteert het naar een Integer-object via autoboxing.

 ArrayList arrayObj=new ArrayList()//object of ArrayList arrayObj(new Integer(12)); //converts integer primitive to Integer object and added to ArrayList object 

Overeenkomsten

  • Array en ArrayList worden beide gebruikt voor het opslaan van elementen.
  • Array en ArrayList kunnen beide nulwaarden opslaan.
  • Ze kunnen dubbele waarden hebben.
  • Ze behouden de volgorde van de elementen niet.

In de volgende tabel worden de belangrijkste verschillen tussen array en ArrayList beschreven:

Basis Array ArrayLijst
Definitie Een reeks is een dynamisch gemaakt object. Het dient als een container die het constante aantal waarden van hetzelfde type bevat. Het heeft een aaneengesloten geheugenlocatie. De ArrayLijst is een klasse van Java Collecties kader. Het bevat populaire klassen zoals Vector, hashtabel , En Hash kaart .
Statisch dynamisch Array is statisch qua maat. ArrayList is dynamisch qua maat.
Aanpasbaar Een array is een vaste lengte data structuur. ArrayList is een variabele lengte data structuur. Het formaat kan indien nodig zelf worden aangepast.
Initialisatie Het is verplicht om de grootte van een array op te geven tijdens het direct of indirect initialiseren ervan. We kunnen een exemplaar van ArrayList maken zonder de grootte ervan op te geven. Java maakt een ArrayList met een standaardgrootte.
Prestatie Het presteert snel in vergelijking met ArrayList vanwege de vaste grootte. ArrayList wordt intern ondersteund door de array in Java. De bewerking voor het wijzigen van de grootte in ArrayList vertraagt ​​de prestaties.
Primitief/algemeen type Een array kan beide opslaan voorwerpen En primitieven type. Wij kunnen niet opslaan primitief typ ArrayList in. Het converteert het primitieve type automatisch naar een object.
Itererende waarden We gebruiken voor lus of voor elk lus om een ​​array te doorlopen. Wij gebruiken een iterator om ArrayList te herhalen.
Type-veiligheid We kunnen geen generieke geneesmiddelen samen met array gebruiken, omdat het geen converteerbaar type array is. Met ArrayList kunnen we alleen opslaan algemeen/ type, daarom is het typeveilig.
Lengte Array biedt een lengte variabele die de lengte van een array aangeeft. ArrayList biedt de maat() methode om de grootte van ArrayList te bepalen.
Elementen toevoegen We kunnen elementen aan een array toevoegen met behulp van de opdracht exploitant. Java levert de toevoegen() methode om elementen toe te voegen aan de ArrayList.
Enkel/multidimensionaal Array kan zijn multidimensionaal . ArrayList is altijd eendimensionaal .

Voorbeeld van array in Java

In het volgende voorbeeld hebben we eenvoudigweg een array met lengte vier gemaakt.

 public class ArrayExample { public static void main(String args[]) { //creating an array of integer type int arr[]=new int[4]; //adding elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; for(int i=0;i <arr.length;i++) { system.out.println(arr[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 12 2 15 67 </pre> <h2>Example of ArrayList in Java</h2> <p>In the following example, we have created an instance of ArrayList and performing iteration over the ArrayList.</p> <pre> import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } </pre> <p> <strong>Output:</strong> </p> <pre> 12.4 34.6 56.8 78.9 </pre> <hr></arr.length;i++)>

Voorbeeld van ArrayList in Java

In het volgende voorbeeld hebben we een exemplaar van ArrayList gemaakt en een iteratie over de ArrayList uitgevoerd.

 import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } 

Uitgang:

mockito wanneer dan ook
 12.4 34.6 56.8 78.9