多平台统一管理软件接口,如何实现多平台统一管理软件接口
637
2022-10-13
java中分组统计的三种实现方式
平时工作中,很多时候都会用到对数据进行分组操作,例如一个学生对象,有班级、名字、性别、分数等,需要按班级分组统计,该怎么操作呢?一个合理的算法可以提升不少效率。
大家看一下下面的案例:
//下面是初始化的数据
List
Student student1 = new Student("李四1", "女", "一班");
Student student2 = new Student("李四2", "女", "一班");
Student student3 = new Student("李四3", "女", "一班");
Student student4 = new Student("李四4", "男", "一班");
Student student5 = new Student("李四5", "男", "一班");
Student student6 = new Student("李四6", "男", "二班");
Student student7 = new Student("李四7", "男", "二班");
Student student8 = new Student("李四8", "男", "二班");
Student student9 = new Student("李四9", "男", "二班");
list.add(student1);
list.add(student2);
list.add(student3);
list.add(student4);
list.add(student5);
list.add(student6);
list.add(student7);
list.add(student8);
list.add(student9);
1.合理利用map操作
在实际开发中合理的利用map自带的方法,能解决很多问题
for (Student stu : list) {
if (!map.containsKey(stu.getProvinceCode())) {
ArrayList
map.put(stu.getProvinceCode(), al.add(stu));
} else {
map.get(stu.getProvinceCode()).add(stu);
}
}
2.利用guava的Multimap
Multimap
for (Student stu : list) {
shDYt mulMap.put(stu.getGrade,stu);
}
3.使用jdk8新特性–不要排斥新东西
毕竟java14都出来了,java8的新特性还是需要多了解
//一行就可以解决
Map
上面三种当时从代码量上来看,java8的最简洁。但是实际开发中结合具体场景来说2、3两种都是不错的选择。
Java8 多个字段分组统计
// 分组shDYt统计
Map
List
String[] temp = key.split("_");
String productType = temp[0];
String country = temp[1];
Record record = new Record();
record.set("device_type", productType);
record.set("location", country;
record.set("count", countMap.get(key).intValue());
return record;
}).collect(Collectors.toList());
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~