gpt4 book ai didi

java - 用于存储具有时间线的数据范围的数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:11:39 33 4
gpt4 key购买 nike

我需要在我的应用程序中存储用户的 Activity 日志数据。它包括用户开始进行 Activity 的时间。例如,在下午 1 点,开始“Activity A”。下午 2 点,用户开始“Activity B”。下午 3 点,用户启动了“Avtivity A”。从这些日志中,我以后应该能够查询像这样的信息

  1. 用户在中午 12 点到晚上 8 点之间进行 Activity A 多长时间?
  2. 用户切换 Activity 的次数等

谁能建议什么是存储此类信息的良好内存数据结构?

编辑:可能有数以千计的日志。用户不能同时进行多项 Activity 。

最佳答案

首先,假设您只有一个 Activity ,让我们尝试为您提供一个数据结构来进行查询。

所以让我们有一个列表来存储时间戳(我正在考虑一个整数示例)。

ArrayList<Integer> integers = new ArrayList<Integer>();

在此,您可以存储时间戳。假设您已经存储

integers.add(1);
integers.add(10);
integers.add(12);
integers.add(176);
integers.add(1678);

现在您需要找到访问其中唯一特定值集的方法。考虑 JDK 中的 NavigableSet 类。

NavigableSet<Integer> set = new TreeSet<>(integers);

您可以使用查询特定集合

set.subSet(0, 175); // this will give 1,10,12 from the above values

现在有一个 map 来存储多个 Activity 。

Map<String, List> activityTimeStampmap= new HashMap<>();

如果Activity不存在可以添加,如果Activity已经存在则需要更新列表。

希望对你有帮助。

关于java - 用于存储具有时间线的数据范围的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47937687/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com