ArrayList to Array of Strings in java

前端 未结 5 1692
一向
一向 2021-02-05 11:53
ArrayList newArray = new ArrayList();
newArray = urlList.getUrl();
for( int i = 0 ; i < newArray.size();i++)
{
    System.out.println(newA         


        
5条回答
  •  失恋的感觉
    2021-02-05 12:21

    Depends on what you want to do. Both are correct

    toArray() Returns an array containing all of the elements in this list in proper sequence (from first to last element).

    Refer here

    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.

    Refer here

    In former, you want to get an array. In latter you have an array, you just wanted to fill it up.

    In your case, first form is preferred as you just want to get an array without bothering size or details.


    Basically this is what happens in 2nd case:

    1. List's size is measures.
    2. (a) If list size is less than that of the array provided, new Array of the type provided as argument is created.

      (b)Else, the list is dumped in the specified array.

    The only benefit of doing so, is you avoid casting. The two form are the same. If you use Object array. i.e.

         myList.toArray() <==> toArray(new Object[0])
    

    Now, If you pass an uninitialized array, you will get a NullPointerException. The best way to do it is:

     String[] y = x.toArray(new String[0]);
    

    Please read the document

提交回复
热议问题