Как использовать Java ArrayList

Java ArrayList это универсальный изменяемый размер массива. Он предоставляет большинство возможностей, обычно ожидаемых от массивов на других языках. К ним относятся: доступ к элементам с использованием индекса, добавление, удаление и обновление элементов, динамическое изменение размера, перебор элементов и т. Д. Большинство из этих операций были специально настроены для общего назначения.

Есть несколько других типов «массивов» (классы, которые реализуют Список интерфейс, чтобы быть техническим), которые предназначены для специальных целей. Они включают:

  • LinkedList поддерживает быструю вставку и удаление при промежуточных индексах.
  • Вектор похож на ArrayList но синхронизирован и подходит вместо ArrayList для многопоточных приложений.
  • стек поддерживает операции для имитации списка «последний пришел первым». Это расширяет Вектор и, следовательно, синхронизируется.

Иерархия классов ArrayList из коллекций Java

Эти специальные классы выходят за рамки данной статьи. Тем не менее, вы узнаете, как настроить и использовать универсальный Java ArrayList.

Создание ArrayList

Создание ArrayList это просто. Пустой ArrayList может быть создан с помощью конструктора без аргументов. Здесь мы создаем пустой массив для хранения строк.

ArrayList alist = new ArrayList();

Если вы знаете, сколько элементов будет содержать ваш список массивов, вы можете указать начальную емкость. Эта начальная емкость — всего лишь подсказка для выделения памяти — массив не ограничен указанным количеством элементов. Если вы знаете и указали начальную емкость, вы можете получить небольшое улучшение производительности.

ArrayList alist = new ArrayList(20);

Новый ArrayList с пустыми слотами

Заполнение ArrayList

Добавление предметов в конце

Заполнить arraylist довольно легко. Просто используйте добавлять() способ добавить один элемент в конец массива. Вот пример:

ArrayList alist = new ArrayList();
alist.add("apple");
alist.add("banana");
alist.add("cantaloupe");
alist.add("orange");
System.out.println(alist);
# prints
[apple, banana, cantaloupe, orange]

Чтобы узнать, сколько элементов в массиве, используйте метод размер().

System.out.println("Number of elements in the arraylist: " + alist.size());
# prints
Number of elements in the arraylist: 4

Добавление элементов в ArrayList в конце.

Добавление элементов по указанному индексу

Хотите добавить элемент по произвольному индексу? Укажите индекс в качестве первого аргумента, и элемент будет добавлен в этот индекс:

alist.add(3, "grapes");
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange]

Добавление группы предметов

Вы также можете добавлять элементы из любой коллекции в иерархию коллекций Java. ArrayList это определенный тип, называемый Список. Вот способ построить Список из набора предметов (используя Arrays.asList ()) и добавить его в ArrayList.

List items = Arrays.asList("pear", "cherry");
alist.addAll(items);
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]

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

Доступ к элементам

Как только элементы будут добавлены в список рассылки, как мы снова получим доступ к ним?

Доступ с помощью индекса

Если вы знаете индекс предмета, вы можете использовать получить() метод для получения элемента по этому индексу.

String item = alist.get(2);
System.out.println("Item at index 2 is: " + item);
# prints
Item at index 2 is: cantaloupe

Нахождение предметов

Что если вы не знаете индекс предмета? Ты можешь использовать индекс() проверить, присутствует ли элемент в массиве, и извлечь элемент, используя возвращенный индекс.

System.out.println(alist);
int index = alist.indexOf("orange");
if ( index < 0 )
System.out.println("Item \"orange\" not found");
else
System.out.println("Item \"orange\" found at index " + index);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]
Item "orange" found at index 4

Что делать, если элемент не присутствует в массиве? индекс() Метод возвращает -1, когда элемент не найден.

index = alist.indexOf("grape");
if ( index < 0 )
System.out.println("Item \"grape\" not found");
else
System.out.println("Item \"grape\" found at index " + index);
# prints
Item "grape" not found

Итерация по списку ArrayList

Конечно, наиболее распространенное использование ArrayList перебирает элементы. Это может быть достигнуто несколькими способами. Мы покажем пару простых здесь.

Вот самый простой способ перебора массива и извлечения элементов для некоторой обработки.

for (String fruit : alist) {
System.out.println("Found fruit \"" + fruit + "\"");
}
# prints
Found fruit "apple"
Found fruit "banana"
Found fruit "cantaloupe"
Found fruit "grapes"
Found fruit "orange"
Found fruit "pear"
Found fruit "cherry"

Этот код использует расширенный цикл Java, представленный в Java 1.5. До этого вы можете перебирать элементы с помощью итератора. Итератор также используется, когда вам нужно Удалить элементы в процессе итерации, как показано в примере ниже. (Обратите внимание, что мы делаем копию массива и работаем над копией.)

ArrayList blist = new ArrayList(alist);
for (Iterator iter = blist.iterator() ; iter.hasNext() ; ) {
String fruit = iter.next();
if ( fruit.startsWith("c") )
iter.remove();
else
System.out.println("Keeping \"" + fruit + "\"");
}
# prints
Keeping "apple"
Keeping "banana"
Keeping "grapes"
Keeping "orange"
Keeping "pear"

Замена предметов

Как только элементы добавлены, нам нужен способ заменить ненужные элементы. Это можно сделать с помощью задавать() метод с индексом.

alist.set(5, "pineapple");
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pineapple, cherry]

Удаление предметов

Давайте теперь посмотрим, как мы можем удалить элементы из массива. Если вы знаете индекс предмета (возможно, вы использовали индекс() описано выше), вы можете использовать Удалить() метод с индексом. Возвращает удаленный элемент.

String fruit = alist.remove(2);
System.out.println("Removed element at 2: " + fruit);
# prints
Removed element at 2: cantaloupe

Вы также можете указать элемент для удаления первого вхождения элемента в списке. Метод возвращает правда если элемент был найден и удален.

fruit = "grapes";
System.out.println("Remove " +fruit+ " from the list? " + alist.remove(fruit));
# prints
Remove grapes from the list? true

Как вы используете ArrayList в своих проектах и ​​с какими специальными проблемами вы столкнулись? Пожалуйста, дайте нам знать в комментариях ниже.

Ссылка на основную публикацию
Adblock
detector