package com.mingjia.data_control.test;
import com.mingjia.data_control.ZDCApplication;
import com.mingjia.data_control.modules.product_module.entity.Product;
import org.springframework.boot.SpringApplication;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
public class Tast {
public static void main(String[] args) {
Product product = new Product();
product.setViewCount(1);
product.setTitle("商品1");
Product product2 = new Product();
product2.setViewCount(10);
product2.setTitle("商品3");
Product product3 = new Product();
product3.setViewCount(3);
product3.setTitle("商品2");
Product product4 = new Product();
product4.setViewCount(11);
product4.setTitle("商品2");
List<Product> products = new ArrayList<>();
products.add(product);
products.add(product2);
products.add(product3);
products.add(product4);
//单个字段,分组求和(datas)
Map<String, Integer> enusersCollect1 =
products.stream().collect(Collectors.groupingBy(Product:: getTitle, Collectors.summingInt(Product :: getViewCount)));
System.out.println("-----"+enusersCollect1.get("商品2"));
//排序
enusersCollect1 =sortByValue(enusersCollect1,0);
//循环排序后的结果
for (Map.Entry<String, Integer> entry : enusersCollect1.entrySet()) {
String key = entry.getKey();
String value = entry.getValue().toString();
System.out.println("key=" + key + " value=" + value);
}
}
/**
* flag = 1 正序
* flag = 0 倒序
* @param map
* @param flag
* @return
*/
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, int flag) {
Map<K, V> sortMap = new LinkedHashMap<>();
if(flag == 1) {
map.entrySet().stream()
.sorted((o1, o2) -> o1.getValue().compareTo(o2.getValue()))
.forEach(entry -> sortMap.put(entry.getKey(), entry.getValue()));
} else {
map.entrySet().stream()
.sorted((o1, o2) -> o2.getValue().compareTo(o1.getValue()))
.forEach(entry -> sortMap.put(entry.getKey(), entry.getValue()));
}
return sortMap;
}
}
Lambda表达式map分组 - map排序工具
最新推荐文章于 2025-04-14 15:39:19 发布