我需要在我的应用程序中存储用户的活动日志数据。它包括用户开始进行活动的时间。例如,在下午1点,开始的“活动A”。下午2点,用户启动了“活动B”。下午3点,用户启动了'Avtivity A'。从这些日志中,我以后应该可以查询信息
任何人都可以建议什么是一个良好的内存数据结构来存储这些信息?
编辑:可能有数千个日志。用户不能同时进行多项活动。
首先,让我们尝试为您提供数据结构,以便假设您有一个活动。
所以让我们有一个列表来存储时间戳(我正在考虑一个整数的例子)。
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<String, List> activityTimeStampmap= new HashMap<>();
如果Activity不存在,您可以添加Activity。如果Activity已经存在,则必须更新列表。
希望这对你有所帮助。