Fill a array with List data

前端 未结 5 1874
暖寄归人
暖寄归人 2020-12-12 02:43

How can I fill a array with the data provided by one List?

For example, I have a List with Strings:

List l = new ArrayList();
l.add(\"a         


        
相关标签:
5条回答
  • 2020-12-12 02:47
    String[] array = new String[l.size()];
    l.toArray(array);
    
    0 讨论(0)
  • 2020-12-12 02:52

    First, you have to specify the concrete type of the List - List<String> (don't leave it raw).

    Then, you can do

    String[] array = list.toArray(new String[list.size()]);
    
    0 讨论(0)
  • 2020-12-12 02:56

    Syntax is a little goofy; you have to provide your own created array as input.

    String[] array = l.toArray(new String[l.size()]);
    
    0 讨论(0)
  • 2020-12-12 02:59

    There's a toArray() method in list...
    You have to first allocate an array of an appropriate size (typically list.size()), and then pass it to the toArray method as a parameter. The array will be initialized with the list content.

    For example:

    String[] myArray = new String[myList.size]();
    myList.toArray(myArray);
    

    You can also do the new call inside the parentheses of toArray

    0 讨论(0)
  • 2020-12-12 03:14

    You can use the toArray(T[] a) method:

    String[] arr = list.toArray(new String[0]);
    

    Or alternately:

    String[] arr = list.toArray(new String[list.size()]);
    

    The difference between the two is that the latter may not need to allocate a new array.


    Effective Java 2nd Edition: Item 23: Don't use raw types in new code.

    JLS 4.8 Raw Types

    The use of raw types is allowed only as a concession to compatibility of legacy code. The use of raw types in code written after the introduction of genericity into the Java programming language is strongly discouraged. It is possible that future versions of the Java programming language will disallow the use of raw types.


    Don't make a habit of naming an identifier l. It looks an awful lot like 1.

    0 讨论(0)
提交回复
热议问题