Рубрики
Без рубрики

Преобразование массива Java в список (ArrayList)

Преобразование массива Java в список, Как преобразовать массив в список ArrayList на Java, Список Java из массива, Массивы.asList() против коллекций.addAll() в список из массива.

Автор оригинала: Pankaj Kumar.

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

Массив Java для перечисления

В Java есть два встроенных способа преобразования массива в список.

  1. Arrays.asList(T… a) : Это самый простой способ преобразования Массива в ArrayList в java но этот метод возвращает базовое представление массива в виде ArrayList. Возвращаемый список массивов имеет фиксированный размер , и любая попытка изменить его приведет к исключению UnsupportedOperationException во время выполнения. Кроме того, любое изменение в массиве также приведет к изменению элементов в списке ArrayList.
  2. Collections.addAll(ArrayList strList, T[] start) : Это лучший способ преобразования массива в ArrayList, поскольку данные массива копируются в список и оба являются независимыми объектами. Как только массив скопирован, вы можете изменить оба объекта независимо. Коллекции является очень полезным классом в Java Collections Framework , который предоставляет множество полезных методов.

Теперь давайте посмотрим, как используются оба этих метода в действии.

package com.journaldev.util;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;


public class ArrayToArrayList {

    /**
     * This class shows different methods to convert Array to ArrayList
     * 
     * @param args
     */
    public static void main(String[] args) {
        String[] strArr = {"1", "2", "3", "4"};
        List strList = new ArrayList();
        //return the list representation of array
        //any change in array elements will change the arrayList elements also
        strList = Arrays.asList(strArr);
        System.out.println("Original ArrayList from Arrays.asList()");
        for (String str : strList)
            System.out.print(" " + str);
        //change the array element and see the effect is propogated to list also.
        strArr[0] = "5";
        System.out.println("\nChange in array effect on ArrayList");
        for (String str : strList)
            System.out.print(" " + str);
        //below code will throw java.lang.UnsupportedOperationException because
        // Arrays.asList() returns a fixed-size list backed by the specified array.
        //strList.add("5");

        strList = new ArrayList();

        Collections.addAll(strList, strArr);
        //change both the array and arraylist and check if they are independent?
        strList.add("5");
        strArr[0] = "1";
        System.out.println("\nArray to ArrayList using Collections.addAll()");
        for (String str : strList)
            System.out.print(" " + str);

    }

}

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

Original ArrayList from Arrays.asList()
 1 2 3 4
Change in array effect on ArrayList
 5 2 3 4
Array to ArrayList using Collections.addAll()
 5 2 3 4 5

Итак, теперь вы знаете, какой метод использовать для преобразования массива в ArrayList в зависимости от требований.

Вот видеоурок, объясняющий это в Eclipse.