logo

Разлика между Array и ArrayList

В Java, масив и ArrayList са добре познатите структури от данни. Масивът е основна функционалност, предоставена от Java, докато ArrayList е клас от рамка на Java Collections. Принадлежи на java.util пакет.

Java масив

Ан масив е динамично създаден обект. Той служи като контейнер, който съдържа постоянния брой стойности от един и същи тип. Има непрекъснато местоположение в паметта. След като масивът е създаден, не можем да променим неговия размер. Можем да създадем масив, като използваме следния оператор:

 int array[]=new int[size]; 

Горният оператор създава масив с посочения размер. Когато се опитаме да добавим повече от неговия размер, той хвърля ArrayIndexOutOfBoundsException . Например:

 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 клас

В Java, ArrayList е клас рамка за колекции. Той изпълнява Списък, колекция, повторение, клониране, сериализиране , и RandomAccess интерфейси. Разширява се AbstractList клас.

Можем да създадем екземпляр на ArrayList, като използваме следния оператор:

 ArrayList arrayList=new ArrayList(); 

ArrayList се поддържа вътрешно от масива в Java. Операцията за преоразмеряване в ArrayList забавя производителността, тъй като включва нов масив и копиране на съдържание от стар масив в нов масив. Той извиква родния имплементиран метод System.arraycopy(sec, srcPos, dest, destPos, length) .

Не можем да съхраняваме примитивен тип в ArrayList. Така че съхранява само обекти. Той автоматично преобразува примитивен тип в обект. Например създадохме обект ArrayList,

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

JVM го преобразува в обект Integer чрез автоматично боксиране.

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

Прилики

  • Array и ArrayList се използват за съхраняване на елементи.
  • Array и ArrayList могат да съхраняват нулеви стойности.
  • Те могат да имат дублиращи се стойности.
  • Те не запазват реда на елементите.

Следната таблица описва основните разлики между масив и ArrayList:

Основа Масив ArrayList
Определение Ан масив е динамично създаден обект. Той служи като контейнер, който съдържа постоянния брой стойности от един и същи тип. Има непрекъснато местоположение в паметта. The ArrayList е клас на Java Колекции рамка. Той съдържа популярни класове като Вектор, хеш-таблица , и HashMap .
Статично/ Динамично Масивът е статичен в размер. ArrayList е динамичен в размер.
Възможност за промяна на размера Масивът е a с фиксирана дължина структура на данни. ArrayList е a с променлива дължина структура на данни. Може да се преоразмерява, когато е необходимо.
Инициализация Задължително е да предоставите размера на масив, докато го инициализирате директно или косвено. Можем да създадем екземпляр на ArrayList, без да посочваме неговия размер. Java създава ArrayList с размер по подразбиране.
производителност Изпълнява бърз в сравнение с ArrayList поради фиксирания размер. ArrayList е вътрешно подкрепен от масива в Java. Операцията за преоразмеряване в ArrayList забавя производителността.
Примитивен/генеричен тип Един масив може да съхранява и двете обекти и примитиви Тип. Не можем да съхраняваме примитивен въведете в ArrayList. Той автоматично преобразува примитивен тип в обект.
Итерация на стойности Ние използваме за цикъл или за всеки цикъл за итерация върху масив. Ние използваме итератор за итерация над ArrayList.
Типова безопасност Не можем да използваме генерични форми заедно с масива, защото това не е конвертируем тип масив. ArrayList ни позволява да съхраняваме само родово/ тип, затова е безопасен за тип.
Дължина Array предоставя a дължина променлива, която обозначава дължината на масив. ArrayList предоставя размер () метод за определяне на размера на ArrayList.
Добавяне на елементи Можем да добавяме елементи в масив, като използваме задание оператор. Java предоставя добави () метод за добавяне на елементи в ArrayList.
Единично/ многоизмерно Масивът може да бъде многоизмерен . ArrayList е винаги едноизмерен .

Пример за масив в Java

В следващия пример ние просто създадохме масив с дължина четири.

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

Пример за ArrayList в Java

В следващия пример създадохме екземпляр на ArrayList и извършихме итерация върху 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); } } } 

Изход:

употреби на операционна система
 12.4 34.6 56.8 78.9