我的arraylist存在问题。
我有一个带鞋的arraylist。这些鞋可以有类别和价格:即智能鞋,休闲鞋等,但我想得到每个类别鞋的总量。
例如,如果我的arraylist有10个智能鞋,每个都有自己的价格和15个休闲鞋及其价格,我想只得到该类别和该类别的总数。
我有一个名为类别的arraylist,用于存储类别和类别所拥有的鞋子总数以及具有价格,鞋子和类别的收据arraylist。
float total = 0;
for(int i = 0; i < receipts.size(); i++){
for(int j = 0; j< receipts.size(); j++)
if (TextUtils.equals(receipts.get(i).getCategory(), receipts.get(j).getCategory()))
total += Float.parseFloat(receipts.get(j).getPrice());
categories.add(new Category(receipts.get(i).getCategory(),String.valueOf(total)));
total = 0;
}
此代码的问题是我倾向于获得一个类别的多个值。
答案 0 :(得分:1)
如果您使用java 8,我建议使用lambda。例如,如果您有一个Shoe数组,则可以按类别分隔鞋子:
final List<Shoe> xShoes = collect.get(1);
final List<Shoe> yShoes = collect.get(2);
然后你可以获得你的偏好集合:
long priceX = xShoes.stream().map(Shoe::getPrice).reduce((aLong, aLong2) -> aLong + aLong2).get();
long priceY = xShoes.stream().map(Shoe::getPrice).reduce((aLong, aLong2) -> aLong + aLong2).get();
您也可以通过以下方式获得总价:
shared_ptr