List jadlist = aa.getlist();//得到包含对象的原始数组
if((jadlist!=null)&&(jadlist.size()>0)){
    List tmplist_1 = null;
    for(int j=0;j<jadlist.size();j++){//将品牌名放入数组
      String brandname = jadlist.get(j).getBrand();
      tmplist_1.add(brandname);
    }
    
  HashMap<String,Object> v = new HashMap<String,Object>();
  if((tmplist_1!=null)&&(tmplist_1.size()>0)){
   for(int i=0;i<tmplist_1.size();i++){
    if(!v.containsKey(tmplist_1.get(i))){
  
         v.put((String)tmplist_1.get(i),jadlist.get(i));
    }
    v.get((String)tmplist_1.get(i)).add(I);
   }
  }
}

解决方案 »

  1.   

    我就是想把品牌相同的元素,能在JSP上分类显示用数组和hashmap都可以
      

  2.   

    差不多就是你写的这个啊!List jadlist = aa.getlist();//得到包含对象的原始数组 
    Hashtable table = null;
    if((jadlist!=null)&&(jadlist.size()>0)){
        table = new Hashtable();
        for(int j=0;j <jadlist.size();j++){//将品牌名放入数组
           ObjectItem  item = jadlist.get(j);   //ObjectItem假设为原始数组里的对象
           String brandname = jadlist.get(j).getBrand(); 
          if(table.containsKey(brandname)){
             ((ArrayList)table.get(brandname)).add(item);
          }else{
              table.put(brandname,new ArrayList());
          }
        }
    } 最后得到的table就是结果集,品牌brandname为主键,包含所有相同品牌的对象的ArrayList为值
      

  3.   

    有个地方不太理解table.put(brandname,new ArrayList()); ,这样的话第一个值table.containsKey肯定是false,这时候怎么让能够键和值对应呢
      

  4.   

    sorry,写掉了else{ 
       List l = new ArrayList(); 
       l.add(item);           
       table.put(brandname,l);
    } 第一次出现brandname,不但要初始List这个对象集合,还要把第一个item放到集合中