java 结果集中list中根据每一个币种进行金额求和怎么写
发布网友
发布时间:2022-04-30 12:38
我来回答
共1个回答
热心网友
时间:2022-06-22 05:51
代码写好了,币种和金额作为Money类的属性存储到List中,再将List中重复币种的金额相加,如下(注意在Eclipse或者MyEclispse里面运行时,添加相关的包):
public class Money {
private String type; //币种
private int value; //金额
//初始化币种和金额
public Money(String type,int value){
this.type=type;
this.value=value;
}
//这个构造器仅仅用于获得一个Money类去调用isSameType()方法,注意这个类只能在本类中使用
Money(){}
//获取相同类型的币种并且将它们的金额总和放在一个list中
public List isSameType(List<Money> list){
List l = new ArrayList<Money>();
if(list!=null){
for (int i = 0; i < list.size(); i++) {
int sumMoney=list.get(i).value;
for(int j = i+1;j<list.size();j++){
if(list.get(i).type.equals(list.get(j).type)){
sumMoney=sumMoney+list.get(j).value;
list.remove(list.get(j));
j=j-1;//删除一个元素以后还原指针位置
}
}
Money m =new Money(list.get(i).type,sumMoney);
l.add(m);
}
}
return l;
}
public String toString(){
return "币种类型:"+ this.type+"\t金额总和:"+this.value;
}
public static void main(String[] args) {
//初始化
List<Money> list = new ArrayList<Money>();
Money m1 = new Money("dollar",6);
Money m2 = new Money("renmbi",8);
Money m3 = new Money("dollar",7);
Money m4 = new Money("dollar",9);
Money m5 = new Money("lubu",4);
Money m6 = new Money("renmbi",10);
Money m7 = new Money("lubu",3);
Money m8 = new Money("tai",15);
list.add(m1);//注意这里加入两次m1
list.add(m1);
list.add(m2);
list.add(m3);
list.add(m4);
list.add(m5);
list.add(m6);
list.add(m7);
list.add(m8);
Money m = new Money();
//求和
List l = m.isSameType(list);
for (int i = 0; i < l.size(); i++) {
System.out.println(l.get(i));
}
}
}