Рубрики

Преобразование массива в ArrayList в Java

Следующие методы могут быть использованы для преобразования Array в ArrayList :

Способ 1: использование метода Arrays.asList ()

 Syntax: public static List asList(T... a)
// Returns a fixed-size List as of size of given array. 
// Element Type of List is of same as type of array element type.
// It returns an List containing all of the elements in this 
// array in the same order. 
// T represents generics 

Обратите внимание, что есть параметр массива и возвращаемое значение списка.

  • Возвращает список фиксированного размера, поддерживаемый указанным массивом.
  • Возвращенный список является сериализуемым и реализует RandomAccess.
  • Поскольку возвращаемый список имеет фиксированный размер, поэтому мы не можем добавить в него больше элементов, но мы можем заменить существующий элемент новым элементом, используя метод set (index, new Element), определенный в классе ArrayList.

// Java-программа для демонстрации преобразования
// Массив в ArrayList фиксированного размера.

import java.util.*;

  

class GFG

{

    public static void main (String[] args)

    {

        String[] geeks = {"Rahul", "Utkarsh",

                          "Shubham", "Neelam"};

  

        // Преобразование массива в ArrayList

        // используя Arrays.asList

        List al = Arrays.asList(geeks);

  

        System.out.println(al);

    }

}

Выход:

[Rahul, Utkarsh, Shubham, Neelam]

Что если мы добавим больше элементов в преобразованный список?
Так как возвращаемый список имеет фиксированный размер, мы не можем добавлять больше элементов. Попытка добавления большего количества элементов вызовет UnsupportedOperationException.

Рассмотрим следующий пример.

// Java-программа для демонстрации ошибки
// если мы добавим больше элементов к
// Список фиксированного размера.

import java.util.*;

  

class GFG

{

    public static void main (String[] args)

    {

  

        String[] geeks = {"Rahul", "Utkarsh",

                          "Shubham", "Neelam"};

  

        // Преобразование массива в ArrayList

        // используя Arrays.asList

        List al = Arrays.asList(geeks);

        System.out.println(al);

  

        // Добавляем еще несколько значений в список.

        al.add("Shashank");

        al.add("Nishant");

  

        System.out.println(al);

    }

}

Выход:

[Rahul, Utkarsh, Shubham, Neelam]

Ошибка выполнения

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.AbstractList.add(AbstractList.java:148)
    at java.util.AbstractList.add(AbstractList.java:108)
    at GFG.main(File.java:16)

Поэтому рекомендуется создать новый ArrayList и передать Arrays.asList (ссылка на массив) в качестве аргумента (то есть в качестве аргумента конструктора ArrayList).

Рассмотрим следующий пример:

// Java-программа для демонстрации того, как добавить
// один или несколько элементов для возврата
// изменяемый размер списка.

import java.util.*;

  

class GFG

{

    public static void main (String[] args)

    {

        String[] geeks = {"Rahul", "Utkarsh",

                          "Shubham", "Neelam"};

  

        List<String> al =

            new ArrayList<String>(Arrays.asList(geeks));

        System.out.println(al);

  

        // Добавляем еще несколько значений в список.

        al.add("Shashank");

        al.add("Nishant");

  

        System.out.println("\nArrayList After adding two" +

                           " more Geeks: ");

        System.out.println(al);

    }

}

[Rahul, Utkarsh, Shubham, Neelam]

ArrayList After adding two more Geeks: 
[Rahul, Utkarsh, Shubham, Neelam, Nishant, Shashank]

& NBAP;

Способ 2: использование метода Collections.addAll ()

Syntax: public static  boolean addAll(Collection c, T... a)
// Adds all of the specified elements to the specified collection.
// Elements to be added may be specified individually or as an array.
// T is generics

Обратите внимание, что существует параметр коллекции c, в который вставляются элементы, а параметр массива a содержит элементы для вставки в c .
Возвращаемый тип — логический тип. Возвращает true, если коллекция изменилась в результате вызова.

Он выдает UnsupportedOperationException, если коллекция c не поддерживает метод add, и выдает IllegalArgumentException, если какой-либо аспект значения в элементах (или элементах массива) препятствует его добавлению в коллекцию c .

Рассмотрим следующий пример:

// Java-программа для демонстрации того, как
// добавить все элементы массива в arrayList.

import java.util.*;

  

class GFG

{

    public static void main (String[] args)

    {

        String[] geeks = {"Rahul", "Utkarsh",

                         "Shubham", "Neelam"};

  

        List<String> al = new ArrayList<String>();

  

        // добавление элементов массива в arrayList.

        Collections.addAll(al, geeks);

  

        System.out.println(al);

    }

}

Выход :

[Rahul, Utkarsh, Shubham, Neelam]

Добавление нуля в список
Примечание. Если указанная коллекция или указанный массив имеют значение null, создается исключение NullpointerException.

// Добавление нуля в список

import java.util.*;

  

class GFG

{

    public static void main (String[] args)

    {

        String[] geeks = {"Rahul", "Utkarsh"

                         "Shubham", "Neelam"};

  

        List<String> al = new ArrayList<String>();

        Collections.addAll(null, geeks);

  

        System.out.println(al);

    }

}

Добавление нуля в конец списка

import java.util.*;

  

class GFG

{

    public static void main (String[] args)

    {

        String[] geeks = {"Rahul", "Utkarsh"

                          "Shubham", "Neelam"};

  

        List<String> al = new ArrayList<String>();

        Collections.addAll(al, null);

  

        System.out.println(al);

    }

}

Ошибка выполнения

Exception in thread "main" java.lang.NullPointerException
    at java.util.Collections.addAll(Collections.java:5401)
    at GFG.main(File.java:11)

Способ 3: использование метода Manual для преобразования массива с использованием метода add ()

Мы можем использовать этот метод, если мы не хотим использовать Java в встроенных методах. Это ручной метод добавления всех элементов массива в список.

Syntax: public boolean add(Object obj)
// Appends the specified element to the end of this list.
// Returns true.

// Java-программа для преобразования ArrayList в
// массив, использующий add () в цикле.

import java.util.*;

  

class GFG

{

    public static void main (String[] args)

    {

        String[] geeks = {"Rahul", "Utkarsh",

                          "Shubham", "Neelam"};

  

        List<String> al = new ArrayList<String>();

  

        // Преобразование массива в ArrayList

        for (String geek : geeks)

            al.add(geek);

  

        System.out.println(al);

    }

}

Выход:

[Rahul, Utkarsh, Shubham, Neelam]

Связанная статья: преобразование ArrayList в массив

Эта статья предоставлена Nitsdheerendra . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Преобразование массива в ArrayList в Java

0.00 (0%) 0 votes