public static void main(String[] args) {
List<ScanHistoryHeatMapDto> alist = new ArrayList<>();
ScanHistoryHeatMapDto dto = new ScanHistoryHeatMapDto();
dto.setLng("123");
dto.setLat("321");
dto.setCount("5");
alist.add(dto);
dto = new ScanHistoryHeatMapDto();
dto.setLng("333");
dto.setLat("222");
dto.setCount("3");
alist.add(dto);
dto = new ScanHistoryHeatMapDto();
dto.setLng("666");
dto.setLat("888");
dto.setCount("9");
alist.add(dto);
List<ScanHistoryHeatMapDto> blist = new ArrayList<>();
dto = new ScanHistoryHeatMapDto();
dto.setLng("111");
dto.setLat("555");
dto.setCount("5");
blist.add(dto);
dto = new ScanHistoryHeatMapDto();
dto.setLng("333");
dto.setLat("222");
dto.setCount("8");
blist.add(dto);
dto = new ScanHistoryHeatMapDto();
dto.setLng("777");
dto.setLat("999");
dto.setCount("2");
blist.add(dto);
dto = new ScanHistoryHeatMapDto();
dto.setLng("666");
dto.setLat("888");
dto.setCount("6");
blist.add(dto);
alist.addAll(blist);
List<ScanHistoryHeatMapDto> list = new ArrayList<>();
Iterator<ScanHistoryHeatMapDto> iter = alist.iterator();
Map<String,ScanHistoryHeatMapDto> entityMape = new HashMap<>();
while(iter.hasNext()) {
ScanHistoryHeatMapDto e = iter.next();
String xy = e.getLng()+","+e.getLat();
if(!entityMape.containsKey(xy)) {
entityMape.put(xy, e);
}else{
entityMape.get(xy).setCount(new BigDecimal(entityMape.get(xy).getCount()).add(new BigDecimal(e.getCount()))+"");
iter.remove();
}
}
list = alist;
JSONArray object = JSONArray.fromObject(list);
System.out.println(object);
}
有待优化~