正确的方法使用列表到数组?

时间:2011-01-07 03:48:04

标签: java

public class TestClass{


private String divisions[] ={};


public void doAction(){

 Collection testArray = new ArrayList();
 // put testArray will data

  divisions = (String [] )  testArray.toArray(division);    //should i use this
 divisions = (String [] )  testArray.toArray(new String [] {});   //should i use this?

}

}

如果我使用案例1,并且我多次调用doaction,则会出现错误记录 如果我使用case2,分区将始终显示正确的记录。我的假设是应该使用案例2吗?

3 个答案:

答案 0 :(得分:0)

是的,在案例1中,您可能在部门结束时遇到额外项目的问题。示例:第一次调用doAction并将除法设置为一定长度时,如果下次调用它时,它需要的空间更少,则会有额外的项目在数组中没有被覆盖。

但是,情况2并不是那么有用,因为如果你传入的数组(在你的例子中长度为零)不够大,那么ArrayList将只创建一个新数组。

答案 1 :(得分:0)

案例2是“更正确”的使用方式。

基本上,你告诉方法你想要什么类型的结果数组。

答案 2 :(得分:0)

仅选择第二个

 divisions = (String [] )  testArray.toArray(new String [] {});