对list
list添加数据:
List<Map<String,Object>>list=new ArrayList<>();
Map<String,Object>map=new HashMap<>();
map.put("typeName",2);
map.put("typeNum",2);
list.add(map);
Map<String,Object>map1=new HashMap<>();
map.put("typeName",1);
map.put("typeNum",1);
list.add(map);
Map<String,Object>map2=new HashMap<>();
map.put("typeName",3);
map.put("typeNum",3);
list.add(map);
降序:
Collections.sort(list, new MapComparatorDesc());
static class MapComparatorDesc implements Comparator<Map<String, Object>> {
@Override
public int compare(Map<String, Object> m1, Map<String, Object> m2) {
Integer v1 = Integer.valueOf(m1.get("typeNum").toString());
Integer v2 = Integer.valueOf(m2.get("typeNum").toString());
if (v2 != null) {
return v2.compareTo(v1);
}
return 0;
}
}
升序:
static class MapComparatorDesc implements Comparator<Map<String, Object>> {
@Override
public int compare(Map<String, Object> m1, Map<String, Object> m2) {
Integer v1 = Integer.valueOf(m1.get("typeNum").toString());
Integer v2 = Integer.valueOf(m2.get("typeNum").toString());
if (v1 != null) {
return v1.compareTo(v2);
}
return 0;
}
}
java8新特性
List<Map<String,Object>>list=new ArrayList<>();
for (int i = 0; i <4 ; i++) {
Map<String,Object> map=new LinkedHashMap<>();
map.put("id",Convert.toInt(Math.random()*10));
map.put("name","小明"+i);
list.add(map);
}
//比较中文
Collator collator=Collator.getInstance(Locale.CHINESE);
Console.log(list);
System.out.println("***********");
Collections.sort(list,(o1,o2)->Convert.toInt(o1.get("id")) -Convert.toInt(o2.get("id")));
Console.log(list);
list对象转map
List<ApplyUnitBurnRespVO> apply1 = new ArreayList<>();
for(int i=1 ; i<=3;i++){
ApplyUnitBurnRespVO vo =new ApplyUnitBurnRespVO();
vo.setDate(i);
vo.setMonthWeight(collect.get(next));
vo.setLastMonthWeight(collect1.get(next));
apply1.add(vo)
}
Map<String, BigDecimal> collect1 = apply1.stream().collect(Collectors.toMap(ApplyUnitBurnRespVO::getDate, ApplyUnitBurnRespVO::getLastMonthWeight));
list对象分组查询
Map<String, List<TfApsDayResultDetail>> collect = list.stream().collect(Collectors.groupingBy(o -> o.getResourceName() + "@" +
o.getMoldCode() + "@" + o.getPlanStartDate()));
list对象分组求和
Map<String, Double> collect = list.stream().collect(Collectors.groupingBy(o -> o.getSalesmanCode() + "@" + o.getSalesman(), Collectors.summingDouble(PefsAdvanceOrderHeadReqDTO::getTotal)));