Rukovodstvo
статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
Как преобразовать массив Java в ArrayList
Введение В этом руководстве мы конвертируем массив в более универсальный ArrayList в Java. * Arrays.asList () * new ArrayList <> (Arrays.asList ()) (Самый популярный и используемый подход) * new ArrayList <> (List.of ()) * Collections.addAll () * Collectors.toList () * Collectors.toCollection () * Lists.newArrayList () Массивы просты и обеспечивают базовую функциональность группирования вместе коллекции объектов или примитивных типов данных. Однако и массивы ограничены — их размер фиксированный.
Время чтения: 3 мин.
Вступление
В этом руководстве мы конвертируем массив в более универсальный ArrayList в Java.
Массивы просты и обеспечивают базовую функциональность по группированию коллекции объектов или примитивных типов данных. Однако массивы также ограничены — их размер фиксирован, и даже основные операции, такие как добавление новых элементов в начале или перестановка элементов, могут быть сложными.
К счастью, Collections Framework познакомила нас со многими очень полезными реализациями List , Set и Queue .
Одним из них является ArrayList , действительно универсальная и популярная реализация List .
ArrayList примет любую Collection . Мы можем проявить творческий подход к типу коллекции, которую передаем в нее.
Arrays.asList ()
Начнем с простейшей формы преобразования. У Arrays есть много полезных методов. Метод asList() возвращает содержимое массива в List :
Это приведет к List реализации ( ArrayList ) , который будет населен emp1 , emp2 и emp3 . Выполнение этого кода приводит к:
новый ArrayList <> (Arrays.asList ())
Лучшим подходом, чем просто присвоение возвращаемого значения вспомогательного метода, является передача возвращаемого значения в new ArrayList<>() . Это стандартный подход, используемый большинством людей.
Это потому, что метод asList() поддерживается исходным массивом.
Если вы измените исходный массив , список также изменится. Кроме того, asList() возвращает фиксированный размер, поскольку он поддерживается фиксированным массивом. Операции, которые расширяют или сокращают список, возвращают UnsupportedOperationException .
Чтобы избежать этого, мы применим функции ArrayList , передав возвращаемое значение asList() конструктору:
новый ArrayList <> (List.of ())
Начиная с Java 9, вы можете пропустить инициализацию самого массива и передать его конструктору. Вы можете использовать List.of() и передавать отдельные элементы:
Collections.addAll ()
Класс Collections предлагает множество полезных вспомогательных методов, среди которых есть метод addAll() . Он принимает Collection и набор elements и объединяет их.
Он очень универсален и может использоваться со многими ароматами коллекции / vararg. Мы используем ArrayList и массив:
Collectors.toList ()
Если вы работаете с потоками, а не с обычными коллекциями, вы можете собрать элементы потока и упаковать их в список с помощью toList() :
Выполнение этого даст:
Collectors.toCollection ()
Точно так же вы можете использовать метод toCollection() для сбора потоков в разные коллекции. В нашем случае мы предоставим в него ссылку ArrayList::new , хотя вы также можете указать другие ссылки:
Это также приводит к:
Lists.newArrayList ()
Подобно вспомогательному классу и методу Arrays.asList() , проект Google Guava познакомил нас с вспомогательным классом Lists Вспомогательный класс Lists newArrayList() :
Теперь ключевым выводом этого подхода было то, что вам не нужно указывать тип при инициализации ArrayList . Это было действительно полезно, когда у вас был список <Element <Element, Element>> .
Однако, поскольку Java 7 устранила необходимость явно указывать тип в операторе ромба, это стало устаревшим.
Заключение
Существует множество способов преобразовать массив в ArrayList в Java. Они охватывают от вызова вспомогательных методов до потоковой передачи массива и сбора элементов.
Как преобразовать массив в список
An Array is a collection of elements which can be of either primitive datatypes or objects. Arrays in Java are static in nature. ArrayLists, on the other hand, can only store elements as objects. ArrayLists in Java, unlike arrays, are dynamic in nature. An ArrayList is a collection class present in java.util package that implements java.util.List interface.
An array can be converted to an ArrayList using the following methods:
- Using ArrayList.add() method to manually add the array elements in the ArrayList: This method involves creating a new ArrayList and adding all of the elements of the given array to the newly created ArrayList using add() method.
Parameters: This function accepts 2 mandatory parameters :
- index – The index at which the specified element is to be inserted.
- element – The element to be inserted.
Returns: The method does not return any value
Exception(s): The method throws IndexOutOfBoundsException if the index is out of range.
Преобразование массива в список в Java
В этом посте будет обсуждаться, как преобразовать массив в список, используя простые коллекции Java, Guava и Apache Commons.
В Java есть две реализации списков общего назначения: ArrayList а также LinkedList . Этот пост будет использовать ArrayList , который предлагает постоянный позиционный доступ и просто быстрый.
1. Наивное решение
Наивное решение состоит в том, чтобы создать пустой список и поместить в него каждый элемент указанного массива.
Преобразование между массивом и списком в Java
В этой быстрой статье будет показано, какconvert between an Array and a List использовать основные библиотеки Java, Guava или коллекции Apache Commons.
Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.
2. ПреобразоватьList в массив
2.1. Использование простой Java
Начнем с преобразованияList в массивusing plain java:
2.2. Использование гуавы
Давайте теперь используемthe Guava API для той же конверсии:
3. Преобразовать массив вList
3.1. Использование простой Java
Начнем с простого Java-решения для преобразования массива вList:
Обратите внимание, что это список фиксированного размера, который все еще будет поддерживаться массивом. Если вам нужен стандартныйArrayList, вы можете просто создать его так:
3.2. Использование гуавы
Давайте теперь используемthe Guava API для той же конверсии:
3.3. Использование коллекций Commons
И, наконец, давайте воспользуемся APIApache Commons Collections —CollectionUtils.addAll для заполнения элементов массива в пустой List:
4. Заключение
Реализация всех этих примеров и фрагментов кодаcan be found over on GitHub — это проект на основе Maven, поэтому его должно быть легко импортировать и запускать как есть.