Java中的数组转ArrayList

Java中的数组转ArrayList

Array(数组) 是一组可以是原始数据类型或对象的元素的集合。Java中的数组是静态的。 ArrayList(数组列表) 则只能将元素存储为对象。Java中的ArrayList不同于数组,其是动态的。ArrayList是java.util包中实现java.util.List接口的集合类。

数组可以使用以下方法转换为ArrayList:

  1. 使用ArrayList.add()方法手动将数组元素添加到ArrayList中 :这种方法涉及创建一个新的ArrayList,并使用add()方法将给定数组的所有元素添加到新创建的ArrayList中。
    语法: public void add(int index, E element)

参数: 此函数接受2个必需参数:

  • index - 要插入指定元素的索引。
  • element - 要插入的元素。

返回值: 该方法不返回任何值

异常: 如果索引超出范围,则该方法引发indexOutOfBoundsException。

例:

    // Java程序说明转换
    //从数组转换为ArrayList

    import java.util.Arrays;
    import java.util.ArrayList;

    class ArrayToArrayList {
        public static void func1(int arr[])
        {
            ArrayList<Integer> array_list =
                    new ArrayList<Integer>();

            //使用add()方法在array_list中添加元素
            for (int i = 0; i < arr.length; i++)
                array_list.add(new Integer(arr[i]));
            System.out.print(array_list);
        }

        public static void main(String[] args)
        {

            int array[] = { 1, 2, 3, 4, 5 };
            func1(array);
        }
    }

输出:

[1, 2, 3, 4, 5]
  1. 使用java.utils.Arrays类的Arrays.asList()方法: 此方法将数组转换为列表,然后将列表作为参数传递以用列表值初始化具有列表值的新ArrayList。
    语法: public static List asList(T[] a)

参数: 该方法接受一个强制参数T []a,其中a是将支持列表的数组,T是数组的类型。

返回值: 该方法返回指定数组的列表视图。

例:

// Java程序说明转换
//从数组转换为ArrayList

import java.util.Arrays;
import java.util.ArrayList;

class ArrayToArrayList {
    public static void func2(Integer arr[])
    {
        //使用Arrays.asList()方法
        ArrayList<Integer> array_list =
            new ArrayList<Integer>(Arrays.asList(arr));
        System.out.print(array_list);
    }

    public static void main(String[] args)
    {

        //使用Integer对象而不是原始数值进行转换到列表
        Integer array[] = { new Integer(1),
                            new Integer(2),
                            new Integer(3),
                            new Integer(4),
                            new Integer(5) };
        func2(array);
    }
}

输出:

[1, 2, 3, 4, 5]
  1. 使用java.utils.Collections类的Collections.addAll()方法: 该方法将ArrayList作为第一个参数,其中包含要插入数组值的Array作为第二个参数。然后将Array的值复制到ArrayList中。
    语法: public static boolean addAll(Collection c, T.. a)

参数: 该方法接受2个强制参数:

  • c - 这是要插入元素的集合。
  • a此方法需要2个参数,一个是包含要插入值的ArrayList,另一个是用于使用的数组的值。然后将数组的值复制到ArrayList中。

例:

// Java程序说明转换
//从数组转换为ArrayList

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

class ArrayToArrayList {
    public static void func3(Integer arr[])
    {
        ArrayList<Integer> array_list =
                new ArrayList<Integer>();

        //通过将数组值添加到ArrayList中来将值转换为ArrayList
        Collections.addAll(array_list, arr);

        System.out.print(array_list);
    }

    public static void main(String[] args)
    {

        Integer array[] = { new Integer(1),
                            new Integer(2),
                            new Integer(3),
                            new Integer(4),
                            new Integer(5) };
        func3(array);
    }
}

输出:

[1, 2, 3, 4, 5]
  • **public boolean addAll(Collection <? extends T> c) ** – 将类型为T的数组插入到c中

返回值: 如果调用以后集合发生了变化,则返回「真」,否则返回「假」。

异常: 此方法会抛出以下异常

  • UnsupportedOperationException
  • 如果指定的集合为null,则会抛出 NullPointerException
  • 如果数组中的某些值的某个方面阻止它被添加到c中,则会抛出 IllegalArgumentException

例子:

// Java程序,演示将数组转换为ArrayList
  
import java.util.Collections;
import java.util.ArrayList;
  
class ArrayToArrayList {
    public static void func3(String arr[])
    {
        ArrayList<String> array_list = new ArrayList<String>();
  
        // 使用Collections.addAll()方法
        Collections.addAll(array_list, arr);
        System.out.print(array_list);
    }
  
    public static void main(String[] args)
    {
  
        String array[] = { "ABC", "DEF", "GHI", "JKL" };
        func3(array);
    }
}

输出:

[ABC, DEF, GHI, JKL]
  • 使用java.utils.Arrays类的Arrays.stream()方法: 该方法创建一个数组值的顺序流。然后,使用collect()方法和流,将值复制到ArrayList中。
    语法: public static IntStream stream(T[] a)

参数: 该方法接受一个必需的参数「a」,它是要转换为T类型流的数组。

返回值: 该方法返回一个指定类型数组的流(这里是Int)。

解释:

使用 Arrays.stream().collect() 方法,它使用 java.util.stream.Collectors 类将流转换为列表,并使用 toList() 方法。

注意: 该方法需要 Java 8 或更高版本。

例子:

// Java程序,演示将数组转换为ArrayList
  
import java.util.Arrays;
import java.util.ArrayList;
import java.util.stream.Collectors;
  
class ArrayToArrayList {
    public static void func4(String arr[])
    {
        // 使用Arrays.stream.collect()方法。
        ArrayList<String> array_list = (ArrayList<String>)
                    Arrays.stream(arr)
                          .collect(Collectors.toList());
        System.out.print(array_list);
    }
  
    public static void main(String[] args)
    {
  
        String array[] = { "ABC", "DEF", "GHI", "JKL" };
        func4(array);
    }
}

输出:

[ABC, DEF, GHI, JKL]
  • 使用java.utils.List接口的List.of(Elements)方法: 该方法将数组作为参数,然后创建一个不可变的列表,该列表包含数组值。然后将该不可变列表作为参数传递给新的ArrayList创建,
    语法: static {T} List{T} of(a)

参数: 该方法接受一个必需的参数「a」,它是要转换并创建的数组,T表示列表的元素类型(可以省略)。

返回值: 该方法返回一个包含指定元素的列表。

异常: **如果数组为空,则该方法会抛出 **NullPointerException(空指针异常)

注意: **该方法需要使用 **Java 9或更高版本。

例子:

// Java程序示例,将一个数组转换成一个ArrayList
// 这个示例展示了如何使用 List.of() 方法。

import java.util.List;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.stream.Collectors;

class ArrayToArrayList {
  public static void func5(String arr[])
  {
    // 使用 List.of() 方法。
    ArrayList<String> array_list = new ArrayList<String>(List.of(arr));
    System.out.print(array_list);
  }

  public static void main(String[] args)
  {
    String array[] = { "ABC", "DEF", "GHI", "JKL" };
    func5(array);
  }
}

输出:

[ABC, DEF, GHI, JKL]

参考文献:

  • https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html
  • https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html
  • https://docs.oracle.com/javase/9/docs/api/java/util/List.html

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程