Java ArrayList и Вектор
Вступление
В дополнение к классу Arrays Java предоставляет класс ArrayList, который можно использовать для создания контейнеров, в которых хранятся списки объектов. ArrayList можно рассматривать как расширяемый массив. Это дает вам быструю итерацию и быстрый произвольный доступ. ArrayList реализует новый интерфейс RandomAccess - интерфейс маркера (то есть у него нет методов), который говорит: «Этот список поддерживает быстрый (обычно постоянное время) произвольный доступ». Выберите этот вариант в LinkedList, когда вам нужна быстрая итерация, но вряд ли вы будете выполнять много вставок и удалений.
Более ранние версии Java имеют один унаследованный класс коллекций под названием Vector, который очень похож на ArrayList. Вектор реализует динамический массив. Вектор в основном такой же, как ArrayList, но методы Vector синхронизируются для обеспечения безопасности потока. Обычно вы хотите использовать ArrayList вместо Vector, потому что синхронизированные методы добавляют снижение производительности, которое вам может не понадобиться. В этом руководстве мы обсудим ArrayList только с учетом того, что все применимо и к вектору.
Класс java.util.ArrayList является одним из наиболее часто используемых из всех классов в Collections Framework. ArrayList имеет динамическое изменение размера, что означает, что его размер может изменяться во время выполнения программы. Это означает, что:
- Вы можете добавить элемент в любой точке контейнера ArrayList, и размер массива автоматически увеличивается, чтобы вместить новый элемент.
- Вы можете удалить элемент в любой точке контейнера ArrayList, и размер массива автоматически сократится.
Чтобы заявить очевидное: Arraylist - это упорядоченная коллекция (по индексу), но не отсортированная.
Чтобы использовать класс ArrayList, вы должны использовать следующую инструкцию import:
import java.util.ArrayList;
Затем, чтобы объявить ArrayList, вы можете использовать конструктор по умолчанию, как в следующем примере:
ArrayList names = new ArrayList ();
Конструктор по умолчанию создает ArrayList вместимостью 10 элементов. Емкость ArrayList - это количество элементов, которые он может содержать, не увеличивая его размер. Другие конструкторы ArrayList следующим образом,
ArrayList names = new ArrayList (int size);
ArrayList names = new ArrayList (Collection c);
Вы также можете указать емкость / размер исходного ArrayList, а также создать ArrayList из других типов коллекций.
Некоторые из преимуществ ArrayList перед массивами:
- Это может расти динамически.
- Он обеспечивает более мощные механизмы вставки и поиска, чем массивы.
Методы ArrayList
метод | Цель |
---|---|
public void add (Object) public void add (int, Object) | Добавляет элемент в ArrayList. Версия по умолчанию добавляет элемент в следующем доступном месте; перегруженная версия позволяет вам указать позицию, в которую нужно добавить элемент |
public void remove (int) | Удаляет элемент из ArrayList в указанном месте |
открытый набор void (int, Object) | Изменяет элемент в указанном месте ArrayList |
Объект get (int) | Извлекает элемент из указанного места в ArrayList |
public int size () | Возвращает текущий размер ArrayList |
Программа Java для демонстрации использования всех описанных выше методов. Здесь мы создаем ArrayList с именем myList и добавляем объекты с помощью метода add (), а также с помощью метода add на основе индекса, а затем печатаем все объекты, используя цикл for. Затем мы демонстрируем использование методов get (), contains () и size (). вывод программы показан под кодом Java.
Java-код: перейти к редактору
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
//declaring Arraylist of String objects
ArrayList<String> myList = new ArrayList<String>();
//Adding objects to Array List at default index
myList.add("Apple");
myList.add("Mango");
myList.add("Orange");
myList.add("Grapes");
//Adding object at specific index
myList.add(1, "Orange");
myList.add(2,"Pinapple");
System.out.println("Print All the Objects:");
for(String s:myList){
System.out.println(s);
}
System.out.println("Object at index 3 element from list: "+ myList.get(3));
System.out.println("Is Chicku is in list: " + myList.contains("Chicku"));
System.out.println("Size of ArrayList: " + myList.size());
myList.remove("Papaya");
System.out.println("New Size of ArrayList: "+ myList.size());
}
}
Выход:
Резюме:
- ArrayList и Vector являются похожими классами, единственное отличие состоит в том, что в Vector все методы синхронизированы. Оба класса простые термины могут рассматриваться как растущий массив.
- ArrayList должен использоваться в приложении, когда нам нужно искать объекты из списка на основе индекса.
- Производительность ArrayList снижается, когда в середине списка много операций вставки и обновления.
Редактор кода Java:
Предыдущий: Java Collection Framework
Далее: Java LinkedList Class
Новый контент: Composer: менеджер зависимостей для PHP , R программирования