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

 


Споріднені теми