问题如下,大家帮帮我啊:多谢!
有一个List对象,List对象中有n个baseVo class,每个baseVo包含有两个值,int id,double count;
要求是返回一个List对象,List中的每个baseVo只包含一个id,相同id的count是累加。
例如
List 
baseVo(id=1,count=1)   
baseVo(id=2,count=1)    
baseVo(id=3,count=1)    
baseVo(id=2,count=1)方法处理后返回
List
baseVo(id=1,count=1)   
baseVo(id=2,count=2)    
baseVo(id=3,count=1)

解决方案 »

  1.   

    List list=已知
    List list1=new ArrayList();
    for(int i=0;i<list.size();i++)
        if(!isExist(list1,list[i].getId())
                list1.add(list[i]);public boolean isExist(List list,String id){
       boolean b=false;
       for(int i=0;i<list.size();i++)
             if(list[i].getId().equals("id")){
                     b=true;break;
             }
       return b;}
      

  2.   

    你可以随便继承一个你想用的list类(arraylist,linkedlist etc.)
    然后做你想做的事。
    这样代码看起来比较好看。
      

  3.   

    import java.util.*;
    class BaseVo{
     static int id;
     static int count;
     BaseVo(int i,int j){
    id=i;
    count=j;
    }
    public String toString(){
    return "new BaseVo("+id+ ") "+count;
    }
    }public class Example {
     public static  boolean isExist(List list,int id){
       boolean b=false;
       for(int i=0;i<list.size();i++)
             if(((BaseVo)list.get(i)).id==id){
                     b=true;
                     ((BaseVo)(list.get(i))).count++;
                     break;
             }
       return b;}

       
    public static void main(String[] args) {
     List lists = new ArrayList();
     lists.add(new BaseVo(0,1));
     lists.add(new BaseVo(0,1));
     lists.add(new BaseVo(0,1));
     System.out.println(lists);
     List lists1 = new ArrayList();
     for(int i=0;i<lists.size();i++){
      if(!isExist(lists1,((BaseVo)lists.get(i)).id))
           lists1.add(lists.get(i));
    }
    System.out.println(lists1);
    }
    }
      

  4.   

    interhanchi(路曼曼其修远兮,吾将上下而求索.) 
    的代码基本上是不错的,可以满足楼主的要求,就是有个小问题要改...isExist(lists1,((BaseVo)lists.get(i)).id)传入的第一个参数应该是lists,而不是lists1应该是:isExist(lists,((BaseVo)lists.get(i)).id)