Как преобразовать массив в List (ArrayList) в Java
Источник: Rrtutors Сегодня вы узнаете о различных способах преобразования массива в List (ArrayList) и ознакомитесь с примерами кода в каждом из них.
- Наивный или метод грубой силы (Brute Force Method).
- Метод Arrays.asList().
- Метод Collections.addAll().
Использование наивного метода или метода грубой силы
В этом методе список создается из пустого массива, и каждый элемент массива добавляется в него один за другим. Метод работает после выполнения следующих действий:- Получите массив.
- Создайте пустой список.
- Переберите элементы в массиве.
- Теперь добавьте каждый элемент в массив.
- Верните полный список.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class NaivemethodExample {
public static <T> List<T> convertArrayToList(T array[])
{
List<T> list = 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<String> list = convertArrayToList(array);
System.out.println("List: " + list);
}
}
Метод Arrays.asList()
С помощью метода Arrays.asList() массив передается в конструктор List в качестве параметра для конструктора. Для преобразования массива в список здесь нужно выполнить следующие шаги:- Получите массив.
- Создайте список, минуя массив в качестве параметра в конструкторе списка.
- Верните полный список.
package asList;
import java.util.Arrays;
import java.util.List;
public class asListExample {
public static <T> List<T> convertArrayToList(T array[])
{
List<T> list = Arrays.asList(array);
return list;
}
public static void main(String args[])
{
String array[]
= { "Mangoes", "Oranges", "berries" };
System.out.println("Array: "
+ Arrays.toString(array));
List<String> list = convertArrayToList(array);
System.out.println("List: " + list);
}
}
Метод Collections.addAll()
Поскольку списки являются частью пакета Collection в Java, можно преобразовать массив в список с помощью метода 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 <T> List<T> convertArrayToList(T array[])
{
List<T> list = 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<String> list = convertArrayToList(array);
System.out.println("List: " + list);
}
}
Вывод:
Array: [peas, tomatoes, water melons ]
List: [peas, tomatoes, water melons ]
Внедрение зависимостей в Java
Источник: Medium В этой публикации вы узнаете, что такое внедрение зависимостей в Java, где оно применяется и какие преимущества дает разработчику.
- Класс обслуживания (Service Class), предоставляющий услуги классу клиента.
- Класс клиента (Client Class) — класс, который зависит от класса обслуживания.
- Класс инжектора (Injector Class) — класс, который внедряет объект класса обслуживания в класс клиента.
Типы внедрения зависимостей
Существует три типа внедрения зависимостей:- Внедрение конструктора (Constructor Injection) — при внедрении конструктора инжектор предоставляет услугу (зависимость) через конструктор клиентского класса.
- Внедрение сеттера (Setter Injection) — в этом типе внедрения (также известном как внедрение свойства) инжектор предоставляет зависимость через общедоступное свойство клиентского класса.
- Внедрение метода (Method Injection) — в этом типе внедрения клиентский класс реализует интерфейс, который объявляет метод(ы) для предоставления зависимости. Инжектор использует этот интерфейс для предоставления зависимости клиентскому классу.
Преимущества внедрения зависимостей
Реализация внедрения зависимостей дает нам следующие преимущества:- Повторное использование кода.
- Простота рефакторинга.
- Простота тестирования.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ