不用解释,直接写代码 如何用Java实现在 Reduce 函数中对商品的销量进行汇总,并按照销量从大到小排序
时间: 2023-02-07 20:01:19 浏览: 82
```
import java.util.Collections;
import java.util.List;
public class SaleReducer {
public static List<Product> reduce(List<Product> products) {
// 先按照销量进行汇总
Map<String, Integer> salesMap = new HashMap<>();
for (Product product : products) {
String name = product.getName();
int sales = product.getSales();
if (salesMap.containsKey(name)) {
salesMap.put(name, salesMap.get(name) + sales);
} else {
salesMap.put(name, sales);
}
}
// 将汇总后的销量设置到Product对象中
List<Product> result = new ArrayList<>();
for (Map.Entry<String, Integer> entry : salesMap.entrySet()) {
Product product = new Product();
product.setName(entry.getKey());
product.setSales(entry.getValue());
result.add(product);
}
// 对结果进行排序
Collections.sort(result, new Comparator<Product>() {
@Override
public int compare(Product o1, Product o2) {
return o2.getSales() - o1.getSales();
}
});
return result;
}
}
```