按月份分组数据处理

语言 Java
实现内容是一列带日期的数据分组成一个月一组的形式(提前要求是数据得按时间从小到大排序)

  • 数据结构
#  time 是Date日期类型
[
    {
        "time": "2019-01-01",
        "title": "这是20190101"
    },
    {
        "time": "2019-01-02",
        "title": "这是20190102"
    },
    {
        "time": "2019-02-01",
        "title": "这是20190201"
    },
    {
        "time": "2019-03-01",
        "title": "这是20190301"
    },
    {
        "time": "2019-03-02",
        "title": "这是20190302"
    },
    {
        "time": "2019-03-03",
        "title": "这是20190303"
    }
]
        
  • 方法
List<Map<String, Object>> result= Lists.newLinkedList();
SimpleDateFormat sf=new SimpleDateFormat("yyyy年MM月");
for (int i = 0; i < list.size(); i++) {                     //list 格式 : List<Data> Data就是上面json格式
    Map<String,Object> params= Maps.newHashMap();
    String time=sf.format(list.get(i).getTime());
    List<Data> children= Lists.newLinkedList();
    for (int j = i; j < list.size(); j++) {
        Data data=list.get(j);
        if (time.equals(sf.format(data.getTime()))){
            children.add(data);
        }else{
            break;
        }
        i=j;
    }
    params.put("time",time );
    params.put("data",children);
    result.add(params);
}
return result;
  • 效果
[
    {
        "data": [
            {
                "time": "2019-01-01",
                "title": "这是20190101"
            },
            {
                "time": "2019-01-02",
                "title": "这是20190102"
            }
        ],
        "time": "2019年01月"
    },
    {
        "data": [
            {
                "time": "2019-02-01",
                "title": "这是20190201"
            }
        ],
        "time": "2019年02月"
    },
    {
        "data": [
            {
                "time": "2019-03-01",
                "title": "这是20190301"
            },
            {
                "time": "2019-03-02",
                "title": "这是20190302"
            },
            {
                "time": "2019-03-03",
                "title": "这是20190303"
            }
        ],
        "time": "2019年03月"
    }
]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 12,062评论 0 34
  • 一. Java基础部分.................................................
    wy_sure阅读 9,228评论 0 11
  • 一、对比分析图 均按从小到大排列 k代表数值中的"数位"个数 n代表数据规模 m代表数据的最大值减最小值 稳定性:...
    leo567阅读 4,965评论 0 1
  • 今天让我感到压力的事是我仔细思考了要怎么整理群消息发现这是个很大的任务!我内心感到一丝后悔,为自己的冲动(不确定是...
    吴青音阅读 890评论 0 1
  • 1.随机数发生器类RNG 2.随机数范围确定 rng.uniform(a,b) 3.使用随机数画图 4.效果展示
    roy_pub阅读 1,410评论 0 0