31. Класс ArrayList и интерфейс List

Класс ArrayList реализует интерфейс List и может менять свой размер во время исполнения программы. Поэтому при создании объекта не обязательно указывать его размерность. Элементы ArrayList могут быть  любых типов, в том числе и null.

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

  • ArrayList(): создает пустой список
  • ArrayList(Collection <? extends E> col): создает список, в который добавляются все элементы коллекции col.
  • ArrayList (int capacity): создает список, который имеет начальную емкость capacity

     

А также следующие методы:

  • public int size() — возвращает количество элементов списка
  • public boolean isEmpty() — возвращает true, если список пуст, иначе возвращает false
  • public boolean contains(Object item ) — возвращает true, если объект item содержится в списке, иначе возвращает false
  • public int indexOf(Object item) — ищет первое вхождение заданного объекта в список и возвращает его индекс.  Возвращает -1, если объект не принадлежит списку.
  • public int lastIndexOf(Object item) — то же самое, но ищет последнее вхождение.
  • public Object clone() — создает копию списка.
  • public Object[] toArray() — преобразует список в массив.
  • public Object get(int index) — возвращает элемент списка с заданным номером.
  • public Object set(int index,  Object item) — заменяет элемент с заданным номером.
  • public boolean add(Object o) — добавляет заданный объект в конец списка.
  • public void add(int index, Object item) — вставляет элемент в указанную позицию списка.
  • public Object remove(int index) — удаляет заданный элемент списка.
  • public void clear() — очищает список.
  • public boolean addAll(Collection c) — добавляет к списку (в конец) все элементы заданной коллекции.
  • public boolean addAll(int index, Collection c) — вставляет в список с указанной позиции все элементы коллекции.
  • protected void removeRange(int fromIndex, int toIndex) — удаляет из коллекции объекты в заданном интервале индексов (исключая toIndex).

 

Пример создания объекта ArrayList.

Пустой список строк
ArrayList <String> list = new ArrayList <String>();

 

Список с заданной начальной емкостью
ArrayList<Integer> list = new ArrayList<Integer>(7);

 

Инициализация списка на этапе определения
ArrayList <String> list = Arrays.asList(new String[] {"элемент1", " элемент2", " элемент3"});

 

Пример.

Создадим экземпляр класса ArrayList и рассмотрим использование методов.

public static void main(String[] args) {
// Создание ArrayList - списка массива
    ArrayList <String> list = new ArrayList <String>();
    // Добаление элемениов в список массива
    list.add("Слива");
    list.add("Персик");
    list.add("Орех грецкий");
    list.add("Инжир");
    list.add("Груша");
    list.add("Вишня");
    list.add("Боярышник");
    list.add("Айва");
    list.add("Абрикос");
    list.add(0, "Яблоня"); //Добавление элемента в 0 позицию списка массива
    // Вывод содержимого списка массива
    System.out.println("ArrayList содержит следующие элементы: " + list);
    // 1 способ: вывод содержимого списка через  foreach цикл
    System.out.println("Извлечение элементов списка с использованием foreach цикла");
    for(String str : list){
         System.out.println("Элемент : " + str);
     }
    // 2 способ: вывод содержимого списка через index и размер списка
    System.out.println("Извлечение элементов списка с использованием index и размера списка");
    for (int i = 0; i < list.size(); i++) {
        System.out.println("Index: " + i + " - элемент: " + list.get(i));
    }
    // 3 способ: использование итератора
    // hasNext(): возвращает  true, если есть следующий элемент
    // next(): следующий элемент
    System.out.println("Извлечение элементов используя итератор");
    for (Iterator<String> it = list.iterator(); it.hasNext();) {
        System.out.println("Элемент: " + it.next());
    }
    // Получение  размера списка массива
    int size = list.size();
    System.out.println("Размер списка: " + size);
    // Получение элемента списка массива в позиции 0
    System.out.println("Первый элемент: " + list.get(0));
    // Замена элемента списка массива в позиции 1
    list.set(1, "Слива медовая");
    // Проверка, содержит ли список элемент "Яблоня"
    boolean flag = list.contains("Яблоня");
    System.out.println("Список содержит элемент  Яблоня: " + flag);
    // Удаление элемента
    // удаление первого вхождения значения "Яблоня"
    list.remove("Яблоня");
    // удаление элемента с индексом 1
    list.remove(1);
    // Перевод ArrayList в массив
    // без использования типов
    Object[] tree = list.toArray();
    for(int i=0; i<tree.length; i++)
          System.out.println(tree[i]);
     String[] strArray = list.toArray(new String[list.size()]);
     System.out.println("Массив после преобразования : "
                    + Arrays.toString(strArray));
}

Будет выведено:

ArrayList содержит следующие элементы: [Яблоня, Слива, Персик, Орех грецкий, Инжир, Груша, Вишня, Боярышник, Айва, Абрикос]
Извлечение элементов списка с использованием foreach цикла
Элемент : Яблоня
Элемент : Слива
Элемент : Персик
Элемент : Орех грецкий
Элемент : Инжир
Элемент : Груша
Элемент : Вишня
Элемент : Боярышник
Элемент : Айва
Элемент : Абрикос
Извлечение элементов списка с использованием index и размера списка
Index: 0 - элемент: Яблоня
Index: 1 - элемент: Слива
Index: 2 - элемент: Персик
Index: 3 - элемент: Орех грецкий
Index: 4 - элемент: Инжир
Index: 5 - элемент: Груша
Index: 6 - элемент: Вишня
Index: 7 - элемент: Боярышник
Index: 8 - элемент: Айва
Index: 9 - элемент: Абрикос
Извлечение элементов используя итератор
Элемент: Яблоня
Элемент: Слива
Элемент: Персик
Элемент: Орех грецкий
Элемент: Инжир
Элемент: Груша
Элемент: Вишня
Элемент: Боярышник
Элемент: Айва
Элемент: Абрикос
Размер списка: 10
Первый элемент: Яблоня
Список содержит элемент Яблоня: true
Слива медовая
Орех грецкий
Инжир
Груша
Вишня
Боярышник
Айва
Абрикос
Массив после преобразования : [Слива медовая, Орех грецкий, Инжир, Груша, Вишня, Боярышник, Айва, Абрикос]

Добавить комментарий
  • Комментарии не найдены