В 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