map分组后取前10个_java8--List转为Map、分组、过滤、求和等操作

本文介绍了如何使用Java8的新特性进行数据处理,包括将List转换为Map,根据ID进行分组,通过过滤条件筛选元素,以及对特定属性进行求和操作。示例中展示了创建Apple对象,添加测试数据,然后演示了转换、分组、过滤和求和的具体代码和结果。
摘要由CSDN通过智能技术生成

利用java8新特性,可以用简洁高效的代码来实现一些数据处理~

定义1个Apple对象:

public classApple {privateInteger id;privateString name;privateBigDecimal money;privateInteger num;publicApple(Integer id, String name, BigDecimal money, Integer num) {this.id =id;this.name =name;this.money =money;this.num =num;

}}

添加一些测试数据:

List appleList = new ArrayList<>();//存放apple对象集合

Apple apple1= new Apple(1,"苹果1",new BigDecimal("3.25"),10);

Apple apple12= new Apple(1,"苹果2",new BigDecimal("1.35"),20);

Apple apple2= new Apple(2,"香蕉",new BigDecimal("2.89"),30);

Apple apple3= new Apple(3,"荔枝",new BigDecimal("9.99"),40);

appleList.add(apple1);

app

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Java 8的流(Stream)和Lambda表达式来对`List<Map<String, Object>>`进行分组求和操作。以下是一个示例代码: ```java import java.util.*; import java.util.stream.Collectors; public class GroupingSum { public static void main(String[] args) { List<Map<String, Object>> dataList = new ArrayList<>(); Map<String, Object> data1 = new HashMap<>(); data1.put("category", "A"); data1.put("value", 10); dataList.add(data1); Map<String, Object> data2 = new HashMap<>(); data2.put("category", "B"); data2.put("value", 20); dataList.add(data2); Map<String, Object> data3 = new HashMap<>(); data3.put("category", "A"); data3.put("value", 30); dataList.add(data3); Map<String, Object> data4 = new HashMap<>(); data4.put("category", "B"); data4.put("value", 40); dataList.add(data4); // 分组求和 Map<String, Integer> sumByCategory = dataList.stream() .collect(Collectors.groupingBy( e -> (String) e.get("category"), Collectors.summingInt(e -> (Integer) e.get("value")) )); // 输出结果 for (Map.Entry<String, Integer> entry : sumByCategory.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } } } ``` 上述代码定义了一个`dataList`,其中包含多个`Map`对象,每个`Map`对象都有两个键值对,分别是"category"和"value"。使用`Collectors.groupingBy`方法对"category"进行分组,然后使用`Collectors.summingInt`方法对"value"进行求和。最后将结果打印出来。 运行上述代码,输出结果如下: ``` A: 40 B: 60 ``` 这表示"category"为"A"的"value"之和为40,"category"为"B"的"value"之和为60。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值