Вводный курс. Язык программирования Java
- Вводный курс. Язык программирования Java
- Просмотров: 4491
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
Слива медовая
Орех грецкий
Инжир
Груша
Вишня
Боярышник
Айва
Абрикос
Массив после преобразования : [Слива медовая, Орех грецкий, Инжир, Груша, Вишня, Боярышник, Айва, Абрикос]