logo

Rozdíl mezi Array a ArrayList

v Javě, pole a ArrayList jsou dobře známé datové struktury. Pole je základní funkce poskytovaná Javou, zatímco ArrayList je třída frameworku Java Collections. Patří k java.util balík.

Java Array

An pole je dynamicky vytvářený objekt. Slouží jako kontejner, který obsahuje konstantní počet hodnot stejného typu. Má souvislé paměťové místo. Jakmile je pole vytvořeno, nemůžeme změnit jeho velikost. Pole můžeme vytvořit pomocí následujícího příkazu:

 int array[]=new int[size]; 

Výše uvedený příkaz vytvoří pole zadané velikosti. Když se pokusíme přidat více, než je jeho velikost, hází Výjimka ArrayIndexOutOfBounds . Například:

 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; 

Třída Java ArrayList

v Javě, ArrayList je třída frameworku Collections. Realizuje Seznam, kolekce, iterovatelný, klonovatelný, serializovatelný , a Náhodný přístup rozhraní. Prodlužuje se AbstractList třída.

Instanci ArrayList můžeme vytvořit pomocí následujícího příkazu:

 ArrayList arrayList=new ArrayList(); 

ArrayList je interně podporován polem v Javě. Operace změny velikosti v ArrayList zpomaluje výkon, protože zahrnuje nové pole a kopírování obsahu ze starého pole do nového. Volá nativní implementovanou metodu System.arraycopy(sec, srcPos, dest, destPos, length) .

V ArrayList nemůžeme uložit primitivní typ. Ukládá tedy pouze předměty. Automaticky převádí primitivní typ na objekt. Například jsme vytvořili objekt ArrayList,

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

JVM jej převede na objekt typu Integer pomocí automatického boxu.

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

Podobnosti

  • Array a ArrayList se používají pro ukládání prvků.
  • Array i ArrayList mohou ukládat hodnoty null.
  • Mohou mít duplicitní hodnoty.
  • Nezachovávají pořadí prvků.

Následující tabulka popisuje klíčové rozdíly mezi polem a ArrayList:

Základ Pole ArrayList
Definice An pole je dynamicky vytvářený objekt. Slouží jako kontejner, který obsahuje konstantní počet hodnot stejného typu. Má souvislé paměťové místo. The ArrayList je třída Java Sbírky rámec. Obsahuje oblíbené třídy jako Vektor, HashTable , a HashMap .
Statické/dynamické Pole je statický ve velikosti. ArrayList je dynamický ve velikosti.
Možnost změny velikosti Pole je a pevná délka datová struktura. ArrayList je a proměnná délka datová struktura. V případě potřeby lze jeho velikost změnit.
Inicializace Při přímé nebo nepřímé inicializaci je povinné zadat velikost pole. Můžeme vytvořit instanci ArrayList bez zadání její velikosti. Java vytvoří ArrayList výchozí velikosti.
Výkon Vystupuje rychle ve srovnání s ArrayList kvůli pevné velikosti. ArrayList je interně podporován polem v Javě. Operace změny velikosti v ArrayList zpomaluje výkon.
Primitivní/generický typ Pole může uložit obojí objektů a primitivů typ. Nemůžeme skladovat primitivní zadejte do ArrayList. Automaticky převádí primitivní typ na objekt.
Iterování hodnot Používáme pro smyčka popř pro každého smyčka pro iteraci přes pole. Používáme an iterátor iterovat přes ArrayList.
Typová bezpečnost Nemůžeme používat generika spolu s polem, protože to není konvertibilní typ pole. ArrayList nám umožňuje pouze ukládat obecný/ typu, proto je typově bezpečný.
Délka Array poskytuje a délka proměnná, která udává délku pole. ArrayList poskytuje velikost() metoda k určení velikosti ArrayList.
Přidávání prvků Prvky do pole můžeme přidat pomocí úkol operátor. Java poskytuje přidat() metoda pro přidání prvků do ArrayList.
Jedno/ vícerozměrné Pole může být vícerozměrný . ArrayList je vždy jednorozměrný .

Příklad Array v Javě

V následujícím příkladu jsme jednoduše vytvořili pole délky čtyři.

 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++)>

Příklad ArrayList v Javě

V následujícím příkladu jsme vytvořili instanci ArrayList a provedli iteraci nad ArrayList.

 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); } } } 

Výstup:

linuxový hostitel
 12.4 34.6 56.8 78.9