代码如下:
====================List<String[]> listbusinesstype = (List<String[]>) request.getAttribute("listbusinesstype");
int num=0;
String type="";
List list=null;
List list1=null;
//List listbusinesstype = (List) request.getAttribute("listbusinesstype");
for(int l=0;l<listbusinesstype.size();l++){
type=listbusinesstype.get(1)[3];
out.println("类别名称为"+type);
list=new ArrayList();
if(type.equals(listbusinesstype.get(l)[3])){
list.add(new String[]{listbusinesstype.get(l)[0],listbusinesstype.get(l)[1],listbusinesstype.get(l)[2],listbusinesstype.get(l)[3]});
}else{
type=listbusinesstype.get(l)[3];
list.add(new String[]{listbusinesstype.get(l)[0],listbusinesstype.get(l)[1],listbusinesstype.get(l)[2],listbusinesstype.get(l)[3]});
}
int jj=list.size();
out.println("记录的条数为"+String.valueOf(jj));显示list的记录数为1,而listbusinesstype中的记录数为25,
请问为什么?

解决方案 »

  1.   

    每次进循环你都 list=new ArrayList();  当然一直是1了..
      

  2.   


    List <String[]> listbusinesstype = (List <String[]>) request.getAttribute("listbusinesstype"); 
    int num = 0; 
    String type=""; 
    List list = new ArrayList(); 
    List list1 = null; 
    for(int l = 0;l < listbusinesstype.size();l++){ 
    type = listbusinesstype.get(1)[3]; 
    out.println("类别名称为" + type); 
    if(type.equals(listbusinesstype.get(l)[3])){ 
    list.add(new String[]{listbusinesstype.get(l)[0],listbusinesstype.get(l)[1],listbusinesstype.get(l)[2],listbusinesstype.get(l)[3]}); 
    }else{ 
    type = listbusinesstype.get(l)[3]; 
    list.add(new String[]{listbusinesstype.get(l)[0],listbusinesstype.get(l)[1],listbusinesstype.get(l)[2],listbusinesstype.get(l)[3]}); 

    int jj = list.size(); 
    out.println("记录的条数为"+String.valueOf(jj));