Java ArrayList и вектор

Введение

Помимо класса Arrays, Java предоставляет класс ArrayList, который можно использовать для создания контейнеров, в которых хранятся списки объектов. ArrayList можно рассматривать как растущий массив. Это дает вам быструю итерацию и быстрый произвольный доступ. ArrayList реализует новый интерфейс RandomAccess — интерфейс маркера (то есть у него нет методов), который говорит: «Этот список поддерживает быстрый (обычно с постоянным временем) произвольный доступ». Выберите это вместо LinkedList, если вам нужна быстрая итерация, но вряд ли вы будете выполнять много операций вставки и удаления.

В более ранних версиях Java есть один унаследованный класс коллекции под названием Vector, который очень похож на ArrayList. Vector реализует динамический массив. Vector — это в основном то же самое, что и ArrayList, но методы Vector синхронизируются для обеспечения безопасности потоков. Обычно вы хотите использовать ArrayList вместо Vector, потому что синхронизированные методы добавляют снижение производительности, которое вам может не понадобиться. В этом руководстве мы обсудим ArrayList только с учетом того, что все применимо и к вектору.

Класс java.util.ArrayList — один из наиболее часто используемых классов в рамках Collections Framework. ArrayList имеет динамически изменяемый размер, что означает, что его размер может изменяться во время выполнения программы. Это означает, что:

  • Вы можете добавить элемент в любой момент в контейнере ArrayList, и размер массива автоматически увеличится для размещения нового элемента.
  • Вы можете удалить элемент в любой точке контейнера ArrayList, и размер массива автоматически сократится.

Чтобы заявить очевидное: Arraylist — это упорядоченная коллекция (по индексу), но не отсортированная.

Чтобы использовать класс ArrayList, вы должны использовать следующий оператор импорта:

 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 в указанном месте
public void set (int, Object) Изменяет элемент в указанном ArrayList расположение
Object get (int) Извлекает элемент из указанного места в ArrayList
public int size () Возвращает текущий размер ArrayList

Программа на Java для демонстрации использования всех вышеописанных методов. Здесь мы создаем ArrayList с именем myList и добавляем объекты с помощью метода add (), а также с помощью метода добавления на основе индекса, а затем печатаем все объекты с помощью цикла for. Затем мы демонстрируем использование методов get (), contains () и size (). вывод программы показан под кодом Java.

Код Java: перейдите в редактор

  import java.util.ArrayList; открытый класс ArrayListDemo {public static void main (String [] args  ) {//объявление Arraylist строковых объектовArrayList  myList = new ArrayList  ();//Добавление объектов в список массивов по умолчанию indexmyList.add ("Apple"); myList.add ("Mango"); myList  .add ("Orange"); myList.add ("Grapes");//Добавление объекта по определенному индексу myList.add (1, "Orange"); myList.add (2, "Pinapple"); System.out.println  ("Распечатать все объекты:"); for (String s: myList) {System.out.println (s);} System.out.println ("Объект с индексом 3 элемента из списка:" + myList.get (3  )); System.out.println ("Is Chicku в списке:" + myList.contains ("Chicku")); System.out.println ("Размер ArrayList:" + myList.size ()); myList.  remove ("Папайя"); System.out.println ("Новый размер ArrayList:" + myList.size ());}}  

Вывод:

Резюме:

  • ArrayList и Vector — похожие классы Единственная разница в том, что в векторе все методы синхронизированы. Оба простых термина могут рассматриваться как растущий массив.
  • ArrayList следует использовать в приложении, когда нам нужно искать объекты из списка на основе индекса.
  • Производительность ArrayList снижается, когда в середине списка выполняется много операций вставки и обновления.

Редактор кода Java:

Оцените статью
nanomode.ru
Добавить комментарий