2011-03-09 64 views
4

如何将arrayList存储到java中的数组?如何将arrayList存储到java中的数组?

+3

请更详细地描述你想达到的目标。 – 2011-03-09 10:16:07

+0

你为什么要这样做? – Tobias 2011-03-09 10:16:10

+0

http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html#toArray() – krock 2011-03-09 10:18:30

回答

11

这取决于你想要什么:

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

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

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

但是,如果你想列表项目的阵列中,执行下列操作之一:

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

参考:

+0

更好地将'arrOfLists'定义为'List []',或者'List []'。 – 2011-03-09 12:35:20

+0

@Paŭlo我知道,但'列表 []'是一个语法错误和'列表'不是一个巨大的收益:-) – 2011-03-09 15:22:13

+0

啊,对,我忘了愚蠢的非泛型数组......至少,''列表 []'不会使用原始类型的警告。 – 2011-03-09 15:36:33

0
List list = getList(); 
Object[] array = new Object[list.size()]; 
for (int i = 0; i < list.size(); i++) 
{ 
    array[i] = list.get(i); 
} 

或者只是使用List#toArray()

0
List<Foo> fooList = new ArrayList<Foo>(); 
Foo[] fooArray = fooList.toArray(new Foo[0]); 
0
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(); 
2

ÿ你的意思是你想要将ArrayList转换为数组?

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

选择合适的班级。

0

尝试常规方法List.toArray()

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

最后一行不会用Java编译(尽管它会是在Groovy中完全合法)。 Javac说:'语法错误,插入“AssignmentOperator表达式”来完成表达式' – 2011-03-09 10:28:32

+0

@Sean:对,我只是把它扔在那里进行演示,我会更新答案以清除它... – maerics 2011-03-10 19:40:42

4

如果类型是已知的(又名不是一个泛型参数)和你想要类型的数组:

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

否则

Object[] arr = list.toArray(); 
相关问题