Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
10 Июл 2023
1 мин
41

Конвертация массива в список в Java

В Java, при работе с массивами и коллекциями, часто возникает задача преобразования массива в список. Но при использовании метода Arrays.asList(), Java SE 1.4.2 и

В Java, при работе с массивами и коллекциями, часто возникает задача преобразования массива в список. Но при использовании метода Arrays.asList(), Java SE 1.4.2 и последующие версии ведут себя по-разному.

Вот пример кода:

int[] numbers = new int[] { 1, 2, 3 };
Arrays.asList(numbers);

В Java SE 1.4.2, этот код возвращает список, содержащий элементы 1, 2, 3. Однако, начиная с Java SE 1.5.0, этот же код возвращает список, содержащий массив numbers.

Это может привести к ошибкам в коде, особенно если этот момент упущен:

Assert.assertTrue(Arrays.asList(numbers).indexOf(4) == -1);

Данный пример пройдет в Java SE 1.4.2, но не пройдет в Java SE 1.5.0 и последующих версиях, так как Arrays.asList(numbers) возвращает список, содержащий массив numbers, а не отдельные элементы.

Для преобразования массива примитивов в список в более новых версиях Java, можно использовать циклы или стримы.

Пример с использованием цикла:

int[] numbers = new int[] { 1, 2, 3 };
List<Integer> list = new ArrayList<>();
for (int i: numbers) {
    list.add(i);
}

Пример с использованием стримов:

int[] numbers = new int[] { 1, 2, 3 };
List<Integer> list = Arrays.stream(numbers).boxed().collect(Collectors.toList());

Оба этих подхода вернут список, содержащий элементы 1, 2, 3, независимо от версии Java.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий