array -> ArrayList при разных типах массивов
Как преобразовать массив типа int в ArrayList? Насколько понимаю ArrayList не работает с примитивами.
int [] array=new int[5]; ArrayList arrlist = new ArrayList<>(Arrays.asList(array));
Или есть другие варианты решения?
Отслеживать
user419583
задан 13 окт 2020 в 19:33
Александр Багно Александр Багно
11 1 1 бронзовый знак
Если вы получили исчерпывающий ответ, отметьте его как принятый (плюсик и галочка слева от ответа)
– user419583
5 дек 2020 в 15:26
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
С помощью стримов - int[] array = new int[5]; List list = Arrays.stream(array).boxed().collect(Collectors.toList());
List list = Arrays.asList(ArrayUtils.toObject(array));
Отслеживать
ответ дан 13 окт 2020 в 19:42
AlekseiGaile AlekseiGaile
1,675 3 3 золотых знака 9 9 серебряных знаков 16 16 бронзовых знаков
Не обязательно массив int[] преобразовывать в ArrayList . Можно получить IntStream по его элементам с помощью метода Arrays.stream(int[]) , обработать их и вернуть обратно массив:
int[] array = new int[]; int[] arr2 = Arrays.stream(array) // обрабатываем элементы .filter(i -> i != 4) .map(i -> i * 2) // возвращаем массив .toArray(); System.out.println(Arrays.toString(arr2)); // [2, 4, 6, 10]
Отслеживать
ответ дан 5 дек 2020 в 15:22
user419583 user419583
int[] array = new int[5]; ArrayList arrlist = new ArrayList<>(); for (int i : array)
Отслеживать
ответ дан 14 окт 2020 в 6:26
89 8 8 бронзовых знаков
- java
- массивы
- arraylist
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Преобразование массива в список в Java
В этом посте будет обсуждаться, как преобразовать массив в список, используя простые коллекции Java, Guava и Apache Commons.
В Java есть две реализации списков общего назначения: ArrayList а также LinkedList . Этот пост будет использовать ArrayList , который предлагает постоянный позиционный доступ и просто быстрый.
1. Наивное решение
Наивное решение состоит в том, чтобы создать пустой список и поместить в него каждый элемент указанного массива.
Как преобразовать массив в ArrayList на Java?
Иногда нам нужно преобразовать массив в ArrayList на Java, но как сделать это правильно и эффективно? Сегодня мы будем рассматривать два способа конвертации Array в ArrayList.
Arrays.asList(T… a) — простой и быстрый способ преобразовать массив в ArrayList в Java, но этот метод возвращает исходный массив в виде ArrayList. Результирующий ArrayList будет фиксированного размера и любая попытка изменить в нем что-то приведет к UnsupportedOperationException во время выполнения. Кроме того, любое изменение в массиве также изменит элементы в ArrayList!
Collections.addAll(ArrayList strList, T[] strArr) — лучший способ преобразовать Array в ArrayList, потому что массив данных копируется в список в виде самостоятельного объекта. А это значит, что исходный массив и результирующий ArrayList будут независимы друг от друга.
Теперь давайте посмотрим эти методы в действии:
Кофе-брейк #144. Как преобразовать массив в List (ArrayList) в Java. Внедрение зависимостей в Java


Источник: RrtutorsСегодня вы узнаете о различных способах преобразования массива в List (ArrayList) и ознакомитесь с примерами кода в каждом из них.Хотя массивы просты и удобны в использовании, они имеют множество ограничений, например, фиксированный размер. Это затрудняет добавление нового элемента в начале и перестановку элементов. Благодаря Collections Framework мы можем реализовать список (List), набор (Set) и очередь (Queue) различными способами. Например, используя универсальный и гибкий список массивов (ArrayList). При преобразовании массива в Java можно использовать три метода. Эти методы включают в себя:
- Наивный или метод грубой силы (Brute Force Method).
- Метод Arrays.asList() .
- Метод Collections.addAll() .
Использование наивного метода или метода грубой силы
- Получите массив.
- Создайте пустой список.
- Переберите элементы в массиве.
- Теперь добавьте каждый элемент в массив.
- Верните полный список.
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class NaivemethodExample < public static List convertArrayToList(T array[]) < Listlist = new ArrayList<>(); for (T t : array) < list.add(t); >return list; > public static void main(String args[]) < String array[] = < "Mangoes", "Oranges", "berries" >; System.out.println("Array: " + Arrays.toString(array)); List list = convertArrayToList(array); System.out.println("List: " + list); > >
Метод Arrays.asList()
- Получите массив.
- Создайте список, минуя массив в качестве параметра в конструкторе списка.
- Верните полный список.
package asList; import java.util.Arrays; import java.util.List; public class asListExample < public static List convertArrayToList(T array[]) < Listlist = Arrays.asList(array); return list; > public static void main(String args[]) < String array[] = < "Mangoes", "Oranges", "berries" >; System.out.println("Array: " + Arrays.toString(array)); List list = convertArrayToList(array); System.out.println("List: " + list); > >
Метод Collections.addAll()
- Получаем массив.
- Создаем пустой список.
- Преобразуем массив в список с помощью метода collections.addAll() .
- Возвращаем список.
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; public class collectionsall < public static List convertArrayToList(T array[]) < Listlist = new ArrayList<>(); Collections.addAll(list, array); return list; > public static void main(String args[]) < String array[] = < "peas", "tomatoes", "water melons" >; System.out.println("Array: " + Arrays.toString(array)); List list = convertArrayToList(array); System.out.println("List: " + list); > >
Array: [peas, tomatoes, water melons ] List: [peas, tomatoes, water melons ]
Внедрение зависимостей в Java

Источник: MediumВ этой публикации вы узнаете, что такое внедрение зависимостей в Java, где оно применяется и какие преимущества дает разработчику.Внедрение зависимостей (Dependency Injection, DI) — это процесс предоставления внешней зависимости программному компоненту. Внедрение зависимостей направлено на разделение проблем создания объектов и их использования. Принцип внедрения предполагает, что объект или функция, которые хотят использовать данный сервис, не должны знать, как его создавать. Вместо этого принимающий “клиент” (объект или функция) получает свои зависимости от внешнего кода (“инжектора”), о котором он не знает. Вот наглядный пример. Когда класс X использует некоторые функции класса Y, мы говорим, что класс X имеет зависимость от класса Y. Внедрение зависимостей позволяет создавать зависимые объекты вне класса и предоставляет эти объекты классу различными способами. В данном случае создание и привязка зависимых объектов вынесены за пределы класса, который от них зависит. Шаблон внедрения зависимостей включает в себя три типа классов:
- Класс обслуживания (Service Class), предоставляющий услуги классу клиента.
- Класс клиента (Client Class) — класс, который зависит от класса обслуживания.
- Класс инжектора (Injector Class) — класс, который внедряет объект класса обслуживания в класс клиента.
Типы внедрения зависимостей
- Внедрение конструктора (Constructor Injection) — при внедрении конструктора инжектор предоставляет услугу (зависимость) через конструктор клиентского класса.
- Внедрение сеттера (Setter Injection) — в этом типе внедрения (также известном как внедрение свойства) инжектор предоставляет зависимость через общедоступное свойство клиентского класса.
- Внедрение метода (Method Injection) — в этом типе внедрения клиентский класс реализует интерфейс, который объявляет метод(ы) для предоставления зависимости. Инжектор использует этот интерфейс для предоставления зависимости клиентскому классу.
Преимущества внедрения зависимостей
- Повторное использование кода.
- Простота рефакторинга.
- Простота тестирования.
