如何将日期组合在一起并用java或kotlin显示其数据

如何将日期组合在一起并用java或kotlin显示其数据,java,android,kotlin,hashmap,set,Java,Android,Kotlin,Hashmap,Set,我正在android中检索这个json,我想按日期显示数据(带有viewpager的选项卡) e、 g.-23(表1):1)id-9854359 2)id-9854360 |24(表2)id-9854361 2)id-9854360 每个选项卡都有我想显示数据的recyclerview项,但问题是我想将日期合并在一起,并根据这些数据显示数据。我尝试过使用hashmap,map…但仍然没有成功 [ { "end_time": "2020-01-23 01:45:00+00:00",

我正在android中检索这个json,我想按日期显示数据(带有viewpager的选项卡)

e、 g.-23(表1):1)id-9854359 2)id-9854360 |24(表2)id-9854361 2)id-9854360

每个选项卡都有我想显示数据的recyclerview项,但问题是我想将日期合并在一起,并根据这些数据显示数据。我尝试过使用hashmap,map…但仍然没有成功

[
    {
    "end_time": "2020-01-23 01:45:00+00:00",
    "is_booked": false,
    "is_expired": false,
    "slot_id": 9854359,
    "start_time": "2020-01-23 01:30:00+00:00",
    "username": null
    },
    {
    "end_time": "2020-01-23 02:05:00+00:00",
    "is_booked": false,
    "is_expired": false,
    "slot_id": 9854360,
    "start_time": "2020-01-23 01:50:00+00:00",
    "username": null
    },
    {
    "end_time": "2020-01-24 02:45:00+00:00",
    "is_booked": false,
    "is_expired": false,
    "slot_id": 9854359,
    "start_time": "2020-01-24 02:30:00+00:00",
    "username": null
    },
    {
    "end_time": "2020-01-24 03:05:00+00:00",
    "is_booked": false,
    "is_expired": false,
    "slot_id": 9854359,
    "start_time": "2020-01-24 02:50:00+00:00",
    "username": null
    }
    ]

将JSON转换为类。据我所知,在Android中使用GSON是标准做法

class Entity {
    String end_time
    boolean is_booked
    boolean is_expired
    long slot_id;
    String start_time;
    String username;
}

List<Entity> entities = gson.fromJson(yourJsonAsString), Entity.class);
类实体{
字符串结束时间
布尔值已预订
布尔值已过期
长槽id;
字符串开始时间;
字符串用户名;
}
List entities=gson.fromJson(yourJsonAsString),Entity.class);
提取日期并按日期分组。我建议使用java Stream API,因为它仅用于以下任务:

Map<String, List<Entity>> grouppedByDate = 
    entities.stream().collect(
        Collectors.grouppingBy(entity -> entity.end_time.split(" ")[0])
    )
Map grouppedByDate=
entities.stream().collect(
Collectors.grouppingBy(entity->entity.end\u time.split(“”[0])
)
创建选项卡视图,每个选项卡都包含列表视图。


对于选项卡适配器,请使用集合
grouppedByDate.entries()
其中
entry.getKey()
是此选项卡中实体的日期,
entry.getValue()
是条目列表。

嘿,伙计,我们如何创建时间地图(早上、下午、晚上)和List?@hiashutossingh您必须传递一个函数,该函数接受实体并将
“上午”、“下午”或“晚上”
返回给
grouppingBy
@hiashutossingh更好的方法是:为上午定义一个枚举。。。而不是使用strings@alijazerzen谢谢,我已经弄明白了。