日期:2014-05-20  浏览次数:20556 次

怎么样把list里的内容赋值给数组
比如现在有一个   List   str=new   ArrayList();
怎么样把里面的内容写到   aa[]里面去?

------解决方案--------------------
import java.util.*;
public class T1 {
public static void main(String args[]) {
List <String> l1 = new ArrayList <String> ();
l1.add( "a ");
List <String> l2 = new ArrayList <String> ();
l2.add( "b ");

l1.addAll(l2);
System.out.println(l1);

String[] s=new String[l1.size()];
l1.toArray(s);

System.out.println(Arrays.toString(s));
}
}
------解决方案--------------------
str.toArray()
------解决方案--------------------
List str=new ArrayList();
str.toArray(new Object[str.size()]);
------解决方案--------------------
List ls = new ArrayList();
Object[] o = new Object[ls.size()];
int i = 0;

Iterator iter = ls.iterator();
while(iter.hasNext())
{
o[i] = iter.next();
i++;
}
------解决方案--------------------
str.toArray(aa);

需要保证数组aa长度够长,且其声明类型为list中所有类的类型都是这个类型或者其子类型
------解决方案--------------------
如:davidafairy() 所说的:

(1)源码里:

for (int i=0;i <ff;i++){
int kpoint=60+rand.nextInt(10);
if(!stra.contains(kpoint)){
stra.add(kpoint);

}
else{
i--;
}
}

需要修改为:

for (int i = 0; i < 0xff; i++) {
int kpoint = 60 + rand.nextInt(10);
Integer kpoObj = new Integer(kpoint);//int--> Integer对象
if (!stra.contains( kpoObj ) ) { //contains()方法需要对象参数
stra.add( kpoObj ); //add()方法需要对象参数

} else {
i--;
}
}

(2)源码里的:

int[] str=new int[stra.size()];
stra.toArray(str);

需要修改为:

Integer[] str = new Integer[stra.size()];
stra.toArray(str);//toArray()方法需要对象参数

问题在于,List容器中放置的都需要是对象,int只是基本类型,所以List大部分方法的参数需要使用与int相对应的Integer对象(当前情况)才可以,其它不变,再试试吧^_^