可用如下方法
ArrayList al = new ArrayList();
al.add("1");
al.add("2");
......
String s = "";
Iterator it = al.iterator();
while ( it.hasNext() ){
s = (String)it.next();
System.out.println(s);
}
ArrayList al = new ArrayList();
al.add("1");
al.add("2");
......
String s = "";
Iterator it = al.iterator();
while ( it.hasNext() ){
s = (String)it.next();
System.out.println(s);
}
......
ArrayList al = new ArrayList();
al.add("1");
al.add("2");
....
Object[] o = al.toArray();
String s = "";
for (int i = 0; i <o.length ; i++ ){
System.out.println((String)o[i]);
}
. ......
ArrayList al = new ArrayList();
al.add("1");
al.add("2");
.......
System.out.println(al.get(2));
......
public ArrayList getSubBoardMenu(String mainBoardId) throws SQLException, ClassNotFoundException{
ArrayList subBoardInfo = new ArrayList();
ResultSet rs = null;
String [] subBoardRecord;
int rowCount = 0;
int columnCount = 0;
mydb.setSql("Select * from PageInfo where page_id like '"+mainBoardId+"%';");
mydb.runSql();
rowCount = mydb.getRowCount();
columnCount = mydb.getColumnCount();
subBoardRecord = new String[columnCount];
rs = mydb.getResultSet();
if (rs.first()){
for (int i = 0; i < columnCount; i++){
subBoardRecord[i]=rs.getString(i+1);
}
subBoardInfo.add(subBoardRecord);
}
while (rs.next()){
subBoardRecord = new String[columnCount];
for (int i = 0; i < columnCount; i++){
subBoardRecord[i]=rs.getString(i+1);
//这里打印出来都是对的
System.out.println("sub: "+subBoardRecord[i]); }
subBoardInfo.add(subBoardRecord);
}
int length = subBoardInfo.size();
for (int i=0;i< length; i++){
String s[] = (String[])subBoardInfo.get(i);
//这里就不对了,所有的数据都变成了最后一次假如的数据
System.out.println("aaaaa"+s[0]);
}
}
你说的对。可是为什么一定要new一个哪?
变量subBoardRecode每次在被add前打印出来的值都是正确的啊,为什么加进去就不对了哪?
add()加进去的object应该应该是另外一片内存区的数据.
如果不new你就只是在一片内存区里面工作了
就相当于给一个变量不断的赋值,当然每次都是变量的值都是最后一次赋的值了
有了new之后你的ArrayList在每次add()之后就会增加一片内存区
相当于把内存区里面的数据增加到ArrayList中去。
楼上的哥们说的很对
这就是C中的指针的思想