logo

Різниця між Array і ArrayList

У Java, масив і ArrayList це добре відомі структури даних. Масив є базовою функціональністю, наданою Java, тоді як ArrayList це клас фреймворка колекцій Java. Це належить 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 це клас фреймворку Collections. Це реалізує Список, колекція, ітерація, клонування, серіалізація , і 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 Колекції рамка. Він містить такі популярні класи, як Вектор, HashTable , і HashMap .
Статичний/ Динамічний Масив є статичний за розміром. ArrayList є динамічний за розміром.
Змінний розмір Масив - це a фіксованої довжини структура даних. ArrayList — це a змінної довжини структура даних. За потреби його можна самостійно змінити.
Ініціалізація Під час прямої чи опосередкованої ініціалізації масиву необхідно вказати розмір масиву. Ми можемо створити екземпляр ArrayList, не вказуючи його розмір. Java створює ArrayList розміру за замовчуванням.
Продуктивність Він виконує швидко у порівнянні з ArrayList через фіксований розмір. ArrayList внутрішньо підтримується масивом у Java. Операція зміни розміру в ArrayList сповільнює продуктивність.
Примітивний/ родовий тип Масив може зберігати обидва об'єктів і примітивів типу. Ми не можемо зберігати примітивний введіть ArrayList. Він автоматично перетворює примітивний тип на об’єкт.
Ітерація значень Ми використовуємо для петля або для кожного цикл для перебору масиву. Ми використовуємо ітератор для повторення ArrayList.
Type-Safety Ми не можемо використовувати генерики разом із масивом, оскільки це не конвертований тип масиву. ArrayList дозволяє лише зберігати загальний/ типу, тому він безпечний для типу.
Довжина Масив забезпечує 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); } } } 

Вихід:

k алгоритм кластеризації
 12.4 34.6 56.8 78.9