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

ArrayList<String[]> 的问题
这是我写的一段代码:
import   java.util.*;

public   class   test{
        public   static   void   main(String[]   args){
String   type   =   "aaa ";
String   name   =   "sss ";

String[]   conds   =   new   String[2];
conds[0]   =   type;
conds[1]   =   name;

ArrayList <String[]>   list   =   new   ArrayList <String[]> ();
list.add(conds);

type   =   "pp ";
name   =   "mm ";

conds[0]   =   type;
conds[1]   =   name;

list.add(conds);

for(int   m   =   0;   m   <   list.size();   m++){

        String[]   tmp   =     new   String[2];
        tmp   =   list.get(m);
        System.out.println( "type:   "   +   tmp[0]);
        System.out.println( "name:   "   +   tmp[1]);
}//end   for
        }//end   main
}

运行结果是
pp
mm
pp
mm
而不是想要的:
aaa
sss
pp
mm
我估计是因为list.add(conds)时加入ArrayList的仅仅是conds这一变量,而并没有将此时conds指向的字符串数组加入ArrayList。
那么我需要怎么做才能将实际的String[]加入到ArrayList中呢?
希望大家帮忙,谢谢

------解决方案--------------------
重新new一个
------解决方案--------------------
将conds[0] = type;
conds[1] = name;
list.add(conds);
改成下面代码就可以了
String[] conds1 = new String[2];
conds1[0] = type;
conds1[1] = name;

list.add(conds1);