Detailed resolution of the transformation between a Java list and an array

  • 2020-04-01 02:17:46
  • OfStack

1 array to List
The static method asList of the Arrays class is called.

asList
Public static < T> List< T> AsList (T... A)Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.) In combination with collection.toarray (). The returned list is serializable and implements RandomAccess.
This method also provides a convenient way to create a fixed-size list initialized to contain several elements:

List< String> Stooges = Arrays. AsList ("Larry", "Moe", "Curly");

The Parameters:
A - the array by which the list will be backed
Returns:
A list view of the specified array

Usage: a method to use is provided in the API. More commonly used example code:


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

2 List is converted to an array
The List here takes the ArrayList as an example. The ArrayList API provides two functions that can be used.

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 interface in Collection< E>
Specified by:
ToArray interface in 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
The 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 interface in Collection< E>
Specified by:
ToArray interface in List< E>
Overrides:
ToArray in class AbstractCollection< E>
The 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

Usage: sample code:


List<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
int size = list.size();
String[] arr = (String[])list.toArray(new String[size]);//The second interface is used, with both the return value and the parameter being the result


Related articles: