问题如下,大家帮帮我啊:多谢!
有一个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)
有一个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)
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;}
然后做你想做的事。
这样代码看起来比较好看。
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);
}
}
的代码基本上是不错的,可以满足楼主的要求,就是有个小问题要改...isExist(lists1,((BaseVo)lists.get(i)).id)传入的第一个参数应该是lists,而不是lists1应该是:isExist(lists,((BaseVo)lists.get(i)).id)