这是我的回收站视图,我在其中存储与费用相关的信息。我想总结每个相应用户的支付金额。例如, sadaf:Rs(50 + 10 + 5)= 65,Gulatiji:(50)Rs = 50,Amen:(50 + 5)= Rs 55 。
我想过使用哈希映射,但问题是我的回收站视图中的用户名不是唯一的。那么,我应该如何存储每个相应用户的总和。 我也试过了,但这给了我错误的答案。 我能够成功汇总总金额,但对于支付的金额,它给了我错误的答案。目前,我只是试图通过使用整数变量my_total计算单个用户的总数。我得到sadaf的答案为110但它应该是65。
calcuationAdap = new CalcuationAdap(Calculation.this,data);
for (int i = 0 ;i<data.size();i++) {
System.out.println(data.get(i).getItem());
main_total = main_total + Integer.parseInt(data.get(i).getTot_amt());
}
for(int i=0;i<data.size();i++)
{
for( int j=i+1;j<data.size()-1;j++)
{
if(data.get(i).getUser_name().equals(data.get(j).getUser_name()))
{
System.out.println(data.get(i).getUser_name());
my_total = my_total+Integer.parseInt(data.get(i).getMy_amt());
}
}
}
Toast.makeText(getApplicationContext(), String.valueOf(main_total ), Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), String.valueOf(my_total), Toast.LENGTH_SHORT).show();
答案 0 :(得分:1)
如果您有用户ID,请使用用户ID。另外明智地使用下面的代码来获得每个总金额
calcuationAdap = new CalcuationAdap(Calculation.this,data);
HashMap<String,Integer> result =new HashMap<>();
for (int i = 0 ;i<data.size();i++) {
System.out.println(data.get(i).getItem());
main_total = main_total + Integer.parseInt(data.get(i).getTot_amt());
}
for(int i=0;i<data.size();i++) {
if (result.containsKey(data.get(i).getUser_name())){
Integer addTotal=result.get(data.get(i).getUser_name());
addTotal= addTotal + Integer.parseInt(data.get(i).getMy_amt());
result.put(data.get(i).getUser_name(),addTotal);
}else {
result.put(data.get(i).getUser_name(),Integer.parseInt(data.get(i).getMy_amt()));
}
}
Toast.makeText(getApplicationContext(), String.valueOf(main_total ), Toast.LENGTH_SHORT).show();
for (Map.Entry<String, Integer> entry:result.entrySet()) {
System.out.println(entry.getKey() + "/" + entry.getValue());
Toast.makeText(getApplicationContext(), entry.getKey() + "/" + entry.getValue(), Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:0)
创建一个类似
的模型类public class MyDataClass {
String userName;
String date;
String item;
int totoalAmount;
int amountPaid;
public int getAmountPaid() {
return amountPaid;
}
public int getTotoalAmount() {
return totoalAmount;
}
public String getDate() {
return date;
}
public String getItem() {
return item;
}
public String getUserName() {
return userName;
}
public void setAmountPaid(int amountPaid) {
this.amountPaid = amountPaid;
}
public void setDate(String date) {
this.date = date;
}
public void setItem(String item) {
this.item = item;
}
public void setTotoalAmount(int totoalAmount) {
this.totoalAmount = totoalAmount;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
并且每当您需要将数据存储为此类型的列表时,创建此类型的数组列表就像 ArrayList list = new ArrayList&lt;&gt;() 并使用getter方法(如
)创建此类的对象以存储数据MyDataClass data =new MyDataClass()
data.setUserName("userName")
....
list.add(data);
无论何时需要获取数据,都可以使用getter方法获取数据,如
list.get(index).getUserName();