java做收银统计功能 需要返回一天中全部数据,没有数据造数据 20C

// 收银统计按照天周月查询
@Override
public ResponseEntity<?> StatisticsCashier(Integer type) {
// 天
Map map = new HashMap<>();
Map map2 = new HashMap<>();
Map map3 = new TreeMap(new Comparator() {
public int compare(String obj1, String obj2) {
// 降序排序
return obj2.compareTo(obj1);
}
});
List> list2 = new ArrayList<>();
try {
// 判断type值1按日2按周3按月
if (type == 1) {

            List<Map<String, Object>> list = iCashierDao.StatisticsCashierbydate();
            for (int i = 0; i < list.size(); i++) {
                map2.put("dtime", list.get(i).get("dtime").toString());
                map2.put("cu", list.get(i).get("cu").toString());
                System.out.println("map2" + map2);
            }
            for (int i = 8; i <= 21; i++) {
                if (i < 10) {
                    map3.put("dtime", "0" + String.valueOf(i));
                    map3.put("cu", String.valueOf(0));
                } else {
                    map3.put("dtime", String.valueOf(i));
                    map3.put("cu", String.valueOf(0));
                }
                System.out.println("map3" + map3);
            }

            // 合并两个map
            map3.putAll(map2);
            list2.add(map3);

            return new ResponseEntity<List<Map<String, String>>>().setState(Constants.SUCCESS).setData(list2)
                    .setMsg("按天获取数据成功");
        } else {

            return new ResponseEntity<Map<String, Object>>().setState(Constants.FAILED).setData(map)
                    .setMsg("输入参数有误");
        }
        说明一下  这个map打印的时候  一直都是打印最后一条记录。应该是map不允许这样存数据,将之前的数据都覆盖了的。 求指教

3个回答

 hashmap不能保持多个相同key的数据,你应该定义一个类,比如class 自定义类{ public string dtime; string cu } 用ArratList<自定义类>
u012812316
死道友不死贫道· 我之前 也想用一个类去做 。 但是我应该具体怎么下手呢? 谢谢
大约 4 年之前 回复

map存储的是key值不相同的数据,如果key值一样会出现覆盖现象

可以考虑用不同的对象作为key,,

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐