Java. Класс ArrayList. Динамический массив. Общие сведения

Класс ArrayList. Динамический массив. Общие сведения. Создание массива


Содержание


Поиск на других ресурсах:

 
1. Список методов класса ArrayList

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

Динамические массивы эффективны в случаях, когда в начале выполнения программы размер массива (данных) неизвестен. Этот размер формируется по мере необходимости.

Класс ArrayList реализует интерфейс List и имеет следующие объявления:

class ArrayList<E>

здесь E – тип сохраняемых объектов.

Список распространенных методов класса следующий:

  • add – добавить элемент в массив;
  • addAll – добавить набор в массив;
  • clear – очистить массив;
  • clone – получить копию массива;
  • contains – определить, содержится ли в списке определенный элемент;
  • containsAll – определить, есть ли все элементы некоторой коллекции в заданной коллекции;
  • ensureCapacity – зарезервировать фрагмент памяти для массива;
  • get – получить элемент массива;
  • indexOf – определить позицию первого вхождения элемента в массиве;
  • isEmpty – определить, пустой ли массив;
  • iterator – получить итератор на массив;
  • lastIndexOf – определить позицию последнего вхождения элемента в массиве;
  • listIterator – получить итератор в виде списка;
  • remove – удалить элемент в заданной позиции;
  • removeAll – удалить группу элементов из коллекции;
  • removeIf – изменить коллекцию на основе предиката;
  • replaceAll – произвести вычисление над каждым элементом массива;
  • retainAll – сформировать новый массив, содержащий элементы заданной коллекции;
  • set – установить новое значение в массиве;
  • size – получить размер массива;
  • sort – рассортировать элементы массива в заданном порядке;
  • subList – получить фрагмент массива на основе заданного массива;
  • toArray – конвертировать массив в массив типа Object[];
  • trimToSize – скорректировать текущий размер массива.

 

2. Конструкторы класса. Создание массива. Пример

В классе ArrayList определены следующие конструкторы:

ArrayList()
ArrayList(Collection<? extends E>)
ArrayList(int size)

здесь

  • E – тип элементов коллекции;
  • size – текущий размер массива.

Первый конструктор создает пустой динамический массив. Второй конструктор создает динамический массив на основе другого массива.

Третий конструктор создает пустой массив с зарезервированным объемом размера size. Если при наращивании количество элементов в таком массиве превысит size, то зарезервированный объем (максимальная емкость) будет увеличен на некоторую величину.

Пример. В примере создаются разные виды динамических массивов.

import java.util.*;

public class TrainCollections {

  public static void main(String[] args) {
    // 1. Конструктор ArrayList()
    //    Создать пустой массив целых чисел
    ArrayList<Integer> AL = new ArrayList();

    // Прибавить к массиву числа от 0 до 9
    for (int i=0; i<10; i++)
      AL.add(i);

    System.out.println(AL); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    // 2. Создать массив строк на основе другого массива строк,
    //    конструктор ArrayList(Collection<? extends E>)
    // 2.1. Создать исходный массив
    ArrayList<String> AS1 = new ArrayList();
    AS1.add("Winter");
    AS1.add("Spring");
    AS1.add("Autumn");
    AS1.add("Summer");
    System.out.println(AS1);  // [Winter, Spring, Autumn, Summer]

    // 2.2. Использовать конструктор ArrayList(Collection<? extends E>)
    ArrayList<String> AS2 = new ArrayList(AS1);
    System.out.println(AS2);  // [Winter, Spring, Autumn, Summer]

    // 3. Конструктор ArrayList(int)
    // 3.1. Создать пустой массив з зарезервированным размером 8 элементов
    ArrayList<Character> AC = new ArrayList(8);

    // 3.2. Вывести размер массива
    System.out.println(AC.size()); // 0 - это есть текущий размер массива
  }
}

Результат выполнения программы

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[Winter, Spring, Autumn, Summer]
[Winter, Spring, Autumn, Summer]
0

 


Связанные темы