java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java List转Array

Java中List转Array的两种主要方式

作者:相思比梦长

在Java中经常遇到需要List与数组互相转换的场景,这篇文章主要给大家介绍了关于Java中List转Array的两种主要方式,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、List转Array介绍

在JAVA编程中,List和Array都是很常见的数据类型。它们都可以储存多个相同类型的元素,由于使用场景不同,某些情况下需要将List转换成Array。List转换成Array主要有两种方式:

1. 利用List的toArray()方法;

2. 利用Collection的toArray()方法。

二、List的toArray()方法

List的toArray()方法可以将List类型的集合转换为数组类型,其实现方式如下: 

        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("Python");
        list.add("JavaScript");

        //String[] strings = new String[list.size()];
        //list.toArray(strings);
        String[] strings = list.toArray(new String[list.size()]);
        System.out.println(Arrays.toString(strings));
        //[Java, Python, JavaScript]

上述代码中,通过list.toArray(array)将List类型的集合转换成String类型的数组。

需要注意的是,在List类型转换成数组时,需要预先声明数组类型及其大小。

三、Collection的toArray()方法

public Object[] toArray();

public <T> T[] toArray(T[] a);

Collection的toArray()方法可以将Collection类型的集合转换为数组类型,使用方式如下:

        Collection<String> collection = new ArrayList<>();
        collection.add("Java");
        collection.add("Python");
        collection.add("JavaScript");

        Object[] objects = collection.toArray();
        String[] strings = Arrays.copyOf(objects, objects.length, String[].class);
        System.out.println(Arrays.toString(strings));
        //[Java, Python, JavaScript]

public <T> T[] toArray(T[] a)的使用

        在toArray参数中直接确定使用什么数据类型来接受,T代表数据类型,[]代表的是数组,即在toArray()方法中传入一个具体数据类型的数组即可。直接返回的就是具体数据类型的数组对象。

长度定义方式一:直接给0即new String[0],如果长度不够,系统会自动加长度,这样就消耗了系统的资源。

长度定义方式二:长度给的过长,但是这些多余的长度还在系统中存在,就形成了一个内存的浪费。

长度定义方式三:就是在定义String[]数组的时候,使用集合的长度来定义数组的长度,因为集合的长度已经定了,其元素的个数也已经定了。

上述代码实现了Collection类型转换成String类型数组的功能。

需要注意的是,Collection的toArray()方法在执行时,需要传入指定类型的类型参数,否则会抛出ClassCastException类型的异常。

附:Array 转 List

String[] string=new String[]{"s1","s2","s3","s4","s5"};
List<String> li= Arrays.asList(string);
System.out.println(li);

总结

到此这篇关于Java中List转Array的两种主要方式的文章就介绍到这了,更多相关Java List转Array内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文