Elettracompany.com

Компьютерный справочник
2 025 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как узнать длину arraylist в java

Списочный массив ArrayList

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

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

Можно инициализировать массив на этапе определения. Созданный объект list содержит свойство size. Обращение к элементам массива осуществляется с помощью метода get(). Пример :

Добавление элемента в массив ArrayList, метод add

Работать с ArrayList просто: необходимо создать объект и вставлять созданные объекты методом add(). Обращение к элементам массива осуществляется с помощью метода get(). Пример:

Замена элемента массива ArrayList, метод set

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

Удаление элемента массива ArrayList, метод remove

Для удаления элемента из массива используется метод remove(). Можно удалять по индексу или по объекту:

ПРИМЕЧАНИЕ: элементы, следующие после удалённого элемента, перемещаются на одну позицию ближе к началу. То же самое относится и к операции вставки элемента в середину списка.

Для очистки всего массива используется метод clear():

Определение позиции элемента ArrayList, метод indexOf

В списочном массиве ArrayList существует метод indexOf(), который ищет нужный элемент и возвращает его индекс.

Отсчёт в массиве начинается с 0, если индекс равен 2, значит он является третьим в массиве.

Проверка наличие элемента в ArrayList, метод contains

Чтобы узнать, есть в массиве какой-либо элемент, можно воспользоваться методом contains(), который вернёт логическое значение true или false в зависимости от присутствия элемента в наборе :

Понятно, что в массиве никаких овощей быть не может, поэтому в консоле будет отображено false.

Создание массива из элементов ArrayList, метод toArray

Для конвертирования набора элементов в обычный массив необходимо использовать метод toArray().

Интерфейс List

java.util.List является интерфейсом и его следует использовать вместо ArrayList следующим образом :

Или укороченный вариант для Java 7:

В примере тип ArrayList заменен на List, но в объявлении оставлен new ArrayList(). Всё остальное остаётся без изменений. Это является рекомендуемым способом.

Интерфейс List реализует более общий интерфейс коллекции Collection.

Преобразование массива в список, Arrays

Для создания массива можно не только добавлять по одному объекту через метод add(), но и сразу массив с использованием Arrays.asList(. ).

Пример создания и инициализации массива из объектов Integer.

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

ArrayList в Java с примерами

Сегодня мы поработаем с ArrayList в Java: посмотрим на примерах самые популярные и полезные методы.

Данный урок является прямым продолжением статьи Коллекции в java, в которой мы разобрали основы и структуру классов коллекций. Теперь, попробуем немного попрактиковаться на примерах.

ArrayList — коллекция на основе массива. Это означает, что она имеет все преимущества и недостатки массивов java.

Это также означает, что работа с элементами данной коллекции подразумевает под собой работу с элементами массива. То есть — «под капотом» данного класса находится массив в чистом виде. Фактически, разработчики предоставляют нам удобные и простые методы для работы с массивом. Соответственно, использовать ArrayList нужно тогда, когда необходима скорость чтения из коллекции, но менее важна скорость удаления данных.

Какие основные методы предоставляет нам ArrayList:

  • add(element) — добавляет элемент в коллекцию;
  • get(index) — достает элемент по индексу;
  • clear() — полностью очищает коллекцию;
  • addAll(another_collection) — добавляет один список в другой;
  • remove(index) — удяляет объект по индексу;
  • remove(object) удаляет по объекту;
  • removeAll(collection_with_remove_elements) — если нужно удалить целый список объектов;
  • size() — возвращает длину коллекции;
  • isEmpty() — проверяет на пустоту;
  • forEach() — обход всех элементов.

Выше я перечислил только самые используемые методы класса ArrayList. Теперь, посмотрим пример их использования:

Как видно на примере выше — работать с ArrayList очень просто и удобно. Названия методов говорят сами за себя.

Начнем с самого начала инициализации ArrayList. Все списки принимают только объекты одного типа. Поэтому, перед инициализацией необходимо указать: с каким типом данных мы будем работать. В примере выше я выбрал тип данных String поэтому должен был явно указать его при создании коллекции массива. Далее, при работе с колекцией, я должен добавлять только строки и работать со строками. Иначе, будет ошибка компиляции. Одной из причин появления классов оберток для примитивных типов является то, что коллекции не работают с примитивами — только с объектами. Поэтому, такой тип записи работать не будет:

Если Вы планируете создавать списки целочисленных или дробних значений — нужно воспользоваться классами обертками примитивных типов:

Отдельно я хочу показать как обходить ArrayList и выводить его значения.

Поскольку работа с элементами ArrayList и особенно вывод их в консоль — очень распространенная операция, я решил показать несколько примеров вывода. Конечно же, я предпочитаю тот, который самый простой и требует найменьше затрат по написанию:

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

Вводный курс. Язык программирования Java

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

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

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

  • ArrayList(): создает пустой список
  • ArrayList(Collection 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 list = new ArrayList ();

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

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

Пример.

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

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

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

Читать еще:  System currenttimemillis java

Интерфейс Java List Collection с примерами

Интерфейс Java List, java.util.List, представляет упорядоченную последовательность объектов. Элементы, содержащиеся в списке Java, могут быть вставлены, повторены и удалены в соответствии с порядком их появления в нем. Порядок элементов — вот почему эта структура данных называется списком.

Каждый элемент имеет индекс: первый элемент — 0, второй — 1 и т. д. Индекс означает «сколько элементов находится в начале». Таким образом, первый элемент находится на расстоянии 0 элементов от начала списка, потому что он находится в начале.

Вы можете добавить любой объект в список. Если он не типизирован с использованием Java Generics, то вы можете даже смешивать объекты разных типов (классов) в одном и том же списке. Однако на практике это происходит не часто.

Интерфейс List является стандартным интерфейсом и подтипом интерфейса Collection, что означает, что List наследуется от Collection.

List против Set

Интерфейсы List и Set очень похожи в том, что они оба представляют коллекцию элементов. Тем не менее, есть некоторые существенные различия, отраженные в методах, предлагаемых интерфейсами:

  1. Один и тот же элемент может встречаться в списке более одного раза. Это отличается от набора, где каждый элемент может встречаться только один раз.
  2. Элементы в List имеют порядок, и могут повторяться в этом порядке. Набор не дает никаких обещаний относительно порядка элементов, хранящихся внутри.

Реализации

Будучи подтипом Collection, все методы в интерфейсе Collection также доступны в интерфейсе List.

Поскольку List — это интерфейс, вам нужно создать конкретную реализацию интерфейса, чтобы использовать его, либо выбрать между следующими в API коллекций:

  • java.util.ArrayList;
  • java.util.LinkedList;
  • java.util.Vector;
  • java.util.Stack.

Также есть параллельные реализации в пакете java.util.concurrent.

Вот несколько примеров того, как создать экземпляр List:

Как вставить элементы

Вы вставляете элементы (объекты) в список, используя его метод add():

Первые три вызова add() добавляют экземпляр String в конец списка.

Как вставить нулевые значения

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

Можно вставить элемент в список по определенному индексу. Интерфейс List имеет версию метода add(), которая принимает индекс в качестве первого параметра, и элемент для вставки в качестве второго:

Если список уже содержит элементы, они теперь будут перемещены дальше во внутренней последовательности списка. Элемент, который имел индекс 0 до того, как новый элемент был вставлен в индекс 0, будет перемещен в индекс 1 и т. д.

Как вставить все элементы из одного списка в другой

Сделать это можно с помощью метода List addAll(). Результирующий список представляет собой объединение двух. Вот пример:

В этом примере все элементы из listSource добавляются в listDest. Метод addAll() принимает коллекцию в качестве параметра, поэтому вы можете передать в качестве параметра список или набор. Другими словами, можете добавить все элементы из списка или набора с помощью addAll().

Как получить элементы

Для этого используется индекс элементов, а также метод get(int index):

Также возможно итерировать элементы списка в том порядке, в котором они хранятся внутри.

Как найти элементы

Используется один из этих двух методов:

Метод indexOf() находит индекс первого вхождения в списке заданного элемента:

Запуск этого кода приведет к следующему выводу:

Как найти последнее вхождение элемента в списке

Метод lastIndexOf() находит индекс последнего вхождения в списке данного элемента:

Выходные данные, напечатанные при запуске приведенного выше примера, будут следующими:

Элемент 1 элемент встречается 2 раза в списке. Индекс последнего появления равен 2.

Проверка, содержится ли элемент

Используется метод List contains():

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

… потому что список действительно содержит элемент.

Чтобы определить, содержит ли List этот элемент, List будет внутренне выполнять итерации своих элементов и сравнивать каждый с объектом, переданным в качестве параметра. Для сравнения используется метод равенства.

Поскольку можно добавить нулевые значения в список, фактически можно проверить, содержит ли он их:

Очевидно, что если входной параметр для contains() имеет значение null, метод contains() не будет использовать метод equals() для сравнения с каждым элементом, а вместо этого использует оператор ==.

Как удалить элементы

Вы можете удалить элементы с помощью этих двух методов:

  • remove(Object element);
  • remove(int index).

remove(Object element) удаляет этот элемент в списке, если он присутствует. Все последующие элементы затем перемещаются вверх по списку. Таким образом, их индекс уменьшается на 1. Вот пример:

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

Метод remove(int index) удаляет элемент по указанному индексу. Все последующие элементы в списке затем перемещаются вверх. Таким образом, их индекс уменьшается на 1. Вот пример:

После запуска этого примера кода список будет содержать элементы 1 и 2 элемента Java String с индексами 0 и 1. Первый элемент (элемент 0) был удален из списка.

Как удалить все элементы

Интерфейс List содержит метод clear(), который удаляет все элементы из списка при вызове. Также называется очисткой списка. Вот простой пример:

Сначала создается новый список. Во-вторых, два элемента добавляются в список. В-третьих, вызывается метод clear(). После вызова метода clear() список будет полностью пустым.

Как сохранить все элементы из одного списка в другом

Интерфейс Java List имеет метод retainAll(), который способен сохранять все элементы из одного списка, которые также присутствуют в другом списке. Другими словами, метод retain() удаляет все элементы из целевого списка, которые не найдены в другом списке. Полученный список является пересечением двух списков. Вот Java-пример вызова метода List retainAll():

  • Первые два списка созданы.
  • 3 элемента добавляются в list, а 3 элемента в otherList.
  • Метод retainAll() вызывается, передавая otherList в качестве параметра. После того, как list.retainAll(otherList) завершит выполнение, список будет содержать только те элементы, которые присутствовали как в list, так и otherList до вызова retainAll(). Более конкретно, это element1 и element3.

Размер

Вы можете получить количество элементов, вызвав метод size():

Подсписок

Интерфейс List имеет метод subList(), который может создавать новый List с подмножеством элементов из исходного List.

Метод subList() принимает 2 параметра:

  1. Начальный индекс — это индекс первого элемента из исходного списка для включения в подсписок.
  2. Конечный индекс является последним индексом подсписка, но элемент в последнем индексе не включается в подсписок.

Это похоже на то, как работает метод подстроки Java String. Вот пример:

После выполнения инструкции list.subList(1,3) подсписок будет содержать элементы с индексами 1 и 2. Помните, что исходный список содержит 4 элемента с индексами от 0 до 3. Вызов list.subList(1,3) будет включить индекс 1, но исключить индекс 3, тем самым сохраняя элементы с индексами 1 и 2.

Читать еще:  Java sql таблица

Как преобразовать в набор

Вы можете преобразовать в набор, создав новый набор и добавив в него все элементы из списка. При этом удалятся все дубликаты. Таким образом, результирующий набор будет содержать все элементы списка, но только один раз. Вот пример:

Обратите внимание, что список содержит элемент String 3 два раза. Набор будет содержать эту строку только один раз. Таким образом, результирующий набор будет содержать элемент Strings 1, элемент 2 и элемент 3.

Как преобразовать в массив

Вы можете выполнить это с помощью метода List toArray():

Также возможно преобразовать в массив определенного типа:

Обратите внимание, что даже если мы передадим массив String размером 0 в toArray(), в возвращенном массиве будут все элементы списка. Он будет иметь то же количество элементов, что и список.

Как конвертировать массив в список

Это метод Arrays.asList(), который преобразует массив в список.

Общие

По умолчанию вы можете поместить любой объект в список, но из Java 5 Generics позволяет ограничить типы объектов, которые вы можете вставить. Вот пример:

Этот список теперь может содержать только экземпляры MyObject. Затем вы можете получить доступ к элементам и выполнить итерацию без их приведения:

Как сортировать

Вы можете отсортировать с помощью метода Collections sort().

Сортировка сопоставимых объектов

Если список содержит объекты, которые реализуют интерфейс Comparable(java.lang.Comparable), то эти объекты могут сравнивать себя друг с другом. В этом случае вы можете отсортировать следующим образом:

Класс Java String реализует интерфейс Comparable, вы можете сортировать их в естественном порядке, используя метод Collections sort().

Сортировка с помощью компаратора

Если объекты в списке не реализуют интерфейс Comparable или если вы хотите отсортировать объекты в другом порядке, чем их реализация compare(), вам необходимо использовать реализацию Comparator(java.util.Comparator). Вот пример сортировки списка объектов Car с использованием Comparator.

Первый класс автомобилей:

Вот код, который сортирует список вышеуказанных объектов Car:

Обратите внимание на реализацию Comparator в приведенном выше примере. Сравнивается только поле бренда объектов Car. Можно создать другую реализацию, которая сравнивает номерные знаки или даже количество дверей в автомобилях.

Также обратите внимание, что возможно реализовать Comparator, используя Lambda. Вот пример, который сортирует объекты List of Car с использованием трех различных лямбда-реализаций интерфейса Comparator, каждая из которых сравнивает экземпляры Car по своему полю:

Итерация

Вы можете выполнить итерацию несколькими способами. Три наиболее распространенных:

  • Использование итератора.
  • Использование цикла for-each.
  • Использование цикла for.
  • Использование API Java Stream.

Я объясню каждый из этих методов итерации списка Java в следующих разделах.

Итерация с использованием итератора

Вы получаете Iterator, вызывая метод iterator() интерфейса List.

Получив Iterator, вы можете продолжать вызывать его метод hasNext(), пока он не вернет false. Вызов hasNext() выполняется внутри цикла while.

Внутри цикла while вы вызываете метод Iterator next() интерфейса Iterator для получения следующего элемента, на который указывает Iterator.

Если список напечатан с использованием Java Generics, вы можете сохранить некоторые объекты внутри цикла while. Вот пример:

Итерация с использованием цикла For-Each

Второй способ — использовать цикл for, добавленный в Java 5 (также называемый циклом «для каждого»):

Цикл for выполняется один раз для каждого элемента списка. Внутри него каждый элемент, в свою очередь, связан с переменной obj.

Если список напечатан (List), вы можете изменить тип переменной внутри цикла:

Обратите внимание, список набирается как String. Поэтому вы можете установить тип переменной внутри цикла для String.

Итерация с помощью цикла For

Цикл for создает переменную int и инициализирует ее равной 0. Затем он зацикливается до тех пор, пока int i меньше размера списка. Для каждой итерации переменная увеличивается.

Внутри цикла for пример обращается к элементам List с помощью метода get(), передавая переменную i в качестве параметра.

Опять же, если список набирается с использованием Java Generics, например, для String, то вы можете использовать универсальный тип List в качестве типа для локальной переменной, которая назначается каждому элементу List в ходе итерации:

Обратите внимание, что тип локальной переменной внутри цикла for теперь String. Поскольку список обычно типизируется как String, он может содержать только объекты String. Следовательно, компилятор знает, что только метод String может быть возвращен из метода get(). Поэтому вам не нужно приводить элемент, возвращенный get(), в String.

С использованием API Java Stream

Для итерации вы должны сначала получить поток из списка. Это выполняется путем вызова метода List stream(). Вот пример получения потока из списка:

Последняя строка этого примера вызывает метод List stream() для получения потока, представляющего элементы списка.

Как только вы получили поток, можете выполнить итерацию потока, вызвав его метод forEach():

Вызов метода forEach() заставит Stream выполнить внутреннюю итерацию всех элементов потока и вызвать получателя, переданного в качестве параметра методу forEach() для каждого элемента в потоке.

Java ArrayList tutorial

Java ArrayList tutorial shows how to work with ArrayList collection in Java. Located in the java.util package, ArrayList is an important collection of the Java collections framework.

Java collections framework is a unified architecture for representing and manipulating collections, enabling collections to be manipulated independently of implementation details. A collection is an object that represents a group of objects.

Java ArrayList

ArrayList is an ordered sequence of elements. It is dynamic and resizable. It provides random access to its elements. Random access means that we can grab any element at constant time. An ArrayList automatically expands as data is added. Unlike simple arrays, an ArrayList can hold data of multiple data types. It permits all elements, including null .

Elements in the ArrayList are accessed via an integer index. Indexes are zero-based. Indexing of elements and insertion and deletion at the end of the ArrayList takes constant time.

An ArrayList instance has a capacity. The capacity is the size of the array used to store the elements in the list. As elements are added to an ArrayList , its capacity grows automatically. Choosing a proper capacity can save some time.

Java ArrayList adding single items

Single elements can be added to an ArrayList with the add() method.

The example adds elements to an array list one by one.

An ArrayList is created. The data type specified inside the diamond brackets ( ) restricts the elements to this data type; in our case, we have a list of strings.

An element is appended at the end of the list with the add() method.

This time the overloaded add() method inserts the element at the specified position; The «C#» string will be located at the second position of the list; remember, the ArrayList is an ordered sequence of elements.

With the for loop, we go through the ArrayList list and print its elements.

This is the output. Note that the elements keep the order they were inserted.

Java List.of

Since Java 9, we have a couple of factory methods for creating lists having a handful of elements. The created list is immutable.

In the example, we create two lists that have four and three elements.

Java ArrayList get() and size()

The get() returns the element at the specified position in this list and the size() returns the size of the list.

The example uses the get() and size() methods of the ArrayList

Читать еще:  Отладка javascript в google chrome

The get() method returns the second element, which is «orange».

The size() method determines the size of our colours list; we have four elements.

This is the output of the example.

Java ArrayList copy

A copy of a list can be generated with List.copy() method.

The example creates a copy of a list with List.copy() .

Raw ArrayList

An ArrayList can contain various data types. These are called raw lists.

Raw lists often require casts and they are not type safe.

The example adds five different data types into an array list — a string, double, integer, object, and enumeration.

When we add multiple data types to a list, we omit the angle brackets.

This is the output.

Java ArrayList add multiple elements

The following example uses the addAll() method to add multiple elements to a list in one step.

Two lists are created. Later, the elements of the lists are added to the third list with the addAll() method.

The addAll() method adds all of the elements to the end of the list.

This overloaded method adds all of the elements starting at the specified position.

This is the output of the example.

Java ArrayList modifying elements

The next example uses methods to modify the ArrayList .

An ArrayList is created and modified with the set() , add() , remove() , and clear() methods.

The set() method replaces the fourth element with the «watch» item.

The add() method adds a new element at the end of the list.

The remove() method removes the first element, having index 0.

The overloaded remove() method remove the first occurrence of the «pen» item.

The clear() method removes all elements from the list.

The isEmpty() method determines if the list is empty.

This is the output of the example.

Java ArrayList removeIf

The removeIf() method removes all of the elements of a collection that satisfy the given predicate.

In our example, we have an ArrayList of integers. We use the removeIf method to delete all negative values.

All negative numbers are removed from the array list.

This is the output.

Java ArrayList removeAll

The removeAll() method removes from this list all of its elements that are contained in the specified collection. Note that all elements are removed with clear() .

In the example, we remove all «a» letters from the list.

Java ArrayList replaceAll

The replaceAll() method replaces each element of a list with the result of applying the operator to that element.

The example applies an operator on each of the list elements; the elements’ letters are transformed to uppercase.

A UnaryOperator that transforms letters to uppercase is created.

The operator is applied on the list elements with the replaceAll() method.

This is the output.

The second example uses the replaceAll() method to capitalize string items.

We have a list of string items. These items are capitalized with the help of the replaceAll() method.

A custom UnaryOperator is created.

Inside the UnaryOperator’s apply() method, we retur the string with its first letter in uppercase.

The operator is applied on the list items.

This is the output of the example.

Java ArrayList contains()

The contains() method returns true if a list contains the specified element.

The example checks if the specified item is in the list.

The message is printed if the item is in the list.

This is the output.

Getting index of elements in ArrayList

Each of the elements in an ArrayList has its own index number. The indexOf() returns the index of the first occurrence of the specified element, or -1 if the list does not contain the element. The lasindexOf() returns the index of the last occurrence of the specified element, or -1 if the list does not contain the element.

The example prints the first and last index of the «orange» element.

This is the example output.

Java list of lists

The example creates three lists of integers. Later, the lists are added into another fourth list.

A list of integers is created.

A list of lists is created.

We use two for loops to go through all the elements.

This is the output of the program.

Java ArrayList subList

The subList() method returns a view of the portion of a list between the specified fromIndex, inclusive, and toIndex, exclusive. The changes in a sublist are reflected in the original list.

The example creates a sublist from a list of items.

A sublist is created with the subList() method; it contains items with indexes 2, 3, and 4.

We replace the first item of the sublist; the modification is reflected in the original list, too.

This is the output of the example.

Java ArrayList traversing

In the following example, we show five ways to traverse an ArrayList .

In the example, we traverse an array list of integers with for loops, while loop, iterator, and forEach() construct.

We have created an ArrayList of integers.

Here, we use the classic for loop to iterate over the list.

The second way uses the enhanced-for loop, which was introduced int Java 5.

The third way uses the while loop.

Here, a ListIterator is used to traverse the list.

In the last way, we use the forEach() method, which was introduced in Java 8.

The example prints the elements of a list to the console, utilizing various techniques.

Java ArrayList sorting

There are different wasy to sort an ArrayList .

Sorting ArrayList with its sort method

The ArrayList’s sort() method sorts a list according to the order induced by the specified comparator.

We have an ArrayList of custom Person classes. We sort the persons according to their age in a reversed order.

This line sorts the persons by their age, from the oldest to the youngest.

This is the output.

Sorting ArrayList with Java 8 stream

In the second example, we use Java stream to sort the ArrayList . Streams API is a more powerful way to do sorting.

In this example, we have a list of countries. Each country has a name and population. The countries are sorted by population.

With the stream() method, we create a stream from a list. The sorted() method sorts elements according to the provided comparator. With Integer.compare() we compare the populations of countries. With collect() , we transform the stream into a list of countries.

This is the output. The countries are sorted by their population in ascending mode.

Working with ArrayList and simple Java array

The following example uses an ArrayList with a simple Java array.

An ArrayList is converted to an array and vice versa.

With the Arrays.asList() method, we create a fixed-size list backed by the specified array.

The ArrayList’s toArray() is used to convert a list to an array.

Stream to list

Java streams can be converted to lists using collectors.

We have a stream of strings. We convert the stream to a list with Collectors.toList() .

This is the output.

In this tutorial, we have worked with the Java ArrayList container.

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты 220 Вольт