【问题标题】:How to store arrayList into an array in java?如何将arrayList存储到java中的数组中?
【发布时间】:2026-01-22 13:15:02
【问题描述】:

java中如何将arrayList存入数组?

【问题讨论】:

标签: java arrays arraylist


【解决方案1】:

这取决于你想要什么:

List<String> list = new ArrayList<String>();
// add items to the list

现在,如果您想将列表存储在数组中,您可以执行以下操作之一:

Object[] arrOfObjects = new Object[]{list};
List<?>[] arrOfLists = new List<?>[]{list};

但是,如果您希望将列表 items 放在一个数组中,请执行以下操作之一:

Object[] arrayOfObjects = list.toArray();
String[] arrayOfStrings = list.toArray(new String[list.size()]);

参考:

【讨论】:

  • 最好将arrOfLists定义为List&lt;String&gt;[],或者List&lt;?&gt;[]
  • @Paŭlo 我知道,但List&lt;String&gt;[] 是一个语法错误,List&lt;?&gt; 并不是一个巨大的收获:-)
  • 啊,对了,我忘记了愚蠢的非泛型数组……至少,List&lt;?&gt;[] 没有对使用原始类型发出警告。
  • @Paŭlo 好的,添加了该更改,但是如果您足够疯狂地将列表存储在数组中,您可能也不关心编译器警告:-)
【解决方案2】:

如果类型已知(也不是泛型参数)并且您想要一个类型数组:

ArrayList<Type> list = ...;
Type[] arr = list.toArray(new Type[list.size()]);

否则

Object[] arr = list.toArray();

【讨论】:

    【解决方案3】:

    您的意思是要将ArrayList 转换为数组?

    Object[] array = new Object[list.size()];
    array = list.toArray(array);
    

    选择适当的类。

    【讨论】:

      【解决方案4】:
      List list = getList();
      Object[] array = new Object[list.size()];
      for (int i = 0; i < list.size(); i++)
      {
        array[i] = list.get(i);
      }
      

      或者直接使用List#toArray()

      【讨论】:

        【解决方案5】:
        List<Foo> fooList = new ArrayList<Foo>();
        Foo[] fooArray = fooList.toArray(new Foo[0]);
        

        【讨论】:

          【解决方案6】:
          List list = new ArrayList();
          
          list.add("Blobbo");
          
          list.add("Cracked");
          
          list.add("Dumbo");
          
          // Convert a collection to Object[], which can store objects    
          
          Object[] ol = list.toArray();
          

          【讨论】:

            【解决方案7】:

            试试通用方法List.toArray()

            List<String> list = Arrays.asList("Foo", "Bar", "Gah");
            String array[] = list.toArray(new String[list.size()]);
            // array = ["Foo", "Bar", "Gah"]
            

            【讨论】:

            • 最后一行在 Java 中无法编译(而在 Groovy 中是完全合法的)。 Javac 说:Syntax error, insert "AssignmentOperator Expression" to complete Expression
            • @Sean:对,我只是把它扔在那里进行演示,我会更新答案以使其清楚......