基本思路:将字符数组的值赋给Arraylist,然后存到Hashtable里,接着将该Arraylist清空,再赋予另一个字符数组的值,再存到同一个Hashtable中。但是最后从Hashtable取出来的两条List却是一样的数据。请各位帮看看代码的问题。谢谢了,新手List testlist=new ArrayList();
Hashtable numbers = new Hashtable();
String[] str={"0","1","2","3"};
String[] str2={"4","5","6","7"};
for(int k=0;k<str2.length;k++){
testlist.add(k,str2[k]);
}
numbers.put("1",testlist);
testlist.clear();
for(int k=0;k<str.length;k++){
testlist.add(k,str[k]);
}
numbers.put("2",testlist);
List out=(ArrayList)numbers.get("1");
List out1=(ArrayList)numbers.get("2");
Hashtable numbers = new Hashtable();
String[] str={"0","1","2","3"};
String[] str2={"4","5","6","7"};
for(int k=0;k<str2.length;k++){
testlist.add(k,str2[k]);
}
numbers.put("1",testlist);
testlist.clear();
for(int k=0;k<str.length;k++){
testlist.add(k,str[k]);
}
numbers.put("2",testlist);
List out=(ArrayList)numbers.get("1");
List out1=(ArrayList)numbers.get("2");
所以2种改法:
//1
List testlist1=new ArrayList();
List testlist2=new ArrayList();
Hashtable numbers = new Hashtable();
String[] str={"0","1","2","3"};
String[] str2={"4","5","6","7"};
for(int k=0;k<str2.length;k++){
testlist1.add(k,str2[k]);
}
numbers.put("1",testlist1);
///testlist.clear();
for(int k=0;k<str.length;k++){
testlist2.add(k,str[k]);
}
numbers.put("2",testlist2);
List out=(ArrayList)numbers.get("1");
List out1=(ArrayList)numbers.get("2");//2
List testlist=new ArrayList();
Hashtable numbers = new Hashtable();
String[] str={"0","1","2","3"};
String[] str2={"4","5","6","7"};
for(int k=0;k<str2.length;k++){
testlist.add(k,str2[k]);
}
numbers.put("1",testlist);
///testlist.clear();
testlist = new ArrayList();
for(int k=0;k<str.length;k++){
testlist.add(k,str[k]);
}
numbers.put("2",testlist);
List out=(ArrayList)numbers.get("1");
List out1=(ArrayList)numbers.get("2");