Java List与数组之间的转换

Posted 十七年蝉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java List与数组之间的转换相关的知识,希望对你有一定的参考价值。

1、数组转List

String[] arr = new String[] {"str1", "str2"};  
List<String> list = Arrays.asList(arr);  

2、List转数组

这里的List以ArrayList为例,ArrayList的API提供了两种可供使用的函数。

第一种:

toArray
public Object[] toArray()
Returns an array containing all of the elements in this list in proper sequence (from first to last element).
The returned array will be "safe" in that no references to it are maintained by this list. (In other words, this method must allocate a new array). The caller is thus free to modify the returned array.

This method acts as bridge between array-based and collection-based APIs.

Specified by:
toArray in interface Collection<E>
Specified by:
toArray in interface List<E>
Overrides:
toArray in class AbstractCollection<E>
Returns:
an array containing all of the elements in this list in proper sequence
See Also:
Arrays.asList(Object[])

  第二种:

toArray
public <T> T[] toArray(T[] a)
Returns an array containing all of the elements in this list in proper sequence (from first to last element); the runtime type of the returned array is that of the specified array. If the list fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this list.
If the list fits in the specified array with room to spare (i.e., the array has more elements than the list), the element in the array immediately following the end of the collection is set to null. (This is useful in determining the length of the list only if the caller knows that the list does not contain any null elements.)

Specified by:
toArray in interface Collection<E>
Specified by:
toArray in interface List<E>
Overrides:
toArray in class AbstractCollection<E>
Parameters:
a - the array into which the elements of the list are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Returns:
an array containing the elements of the list
Throws:
ArrayStoreException - if the runtime type of the specified array is not a supertype of the runtime type of every element in this list
NullPointerException - if the specified array is null

  示例:

List<String> list = new ArrayList<String>();  
list.add("str1");  
list.add("str2");  
int size = list.size();  
String[] arr = (String[])list.toArray(new String[size]);//使用了第二种接口,返回值和参数均为结果  

  

以上是关于Java List与数组之间的转换的主要内容,如果未能解决你的问题,请参考以下文章

数组与List之间的转换

在Java中,ArrayList与数组如何相互转换,写出例子

JAVA中list,set,数组之间的转换详解

list与数组之间的转换

java中的list,set,数组之间的转换

Kotlin集合操作 ④ ( Set 集合 | 可变 Set 集合 | List 与 Set 之间相互转换 | 数组类型 )