Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 保存按时间排序的最后10个对象列表的最佳数据结构是什么_Java_Android - Fatal编程技术网

Java 保存按时间排序的最后10个对象列表的最佳数据结构是什么

Java 保存按时间排序的最后10个对象列表的最佳数据结构是什么,java,android,Java,Android,我需要一个数据结构队列、哈希映射或堆栈的链接列表,以便能够保存用户数据的最后10个对象,如果用户尝试添加项目编号11,则应删除项目编号0,并确保列表仅包含最后10个项目 是否有任何库或算法可以实现这一点,或者我必须自己实现算法?我建议 默认情况下,树集按您放置的元素的自然顺序排序,但也可以传递您自己的 在==10的情况下,您可以随时检查设备是否已满负荷 然后,如果需要添加第11个元素,可以先添加,然后添加。您可以使用Google Guava库中的。根据文件: 逐出队列必须配置为最大大小。每一次

我需要一个数据结构队列、哈希映射或堆栈的链接列表,以便能够保存用户数据的最后10个对象,如果用户尝试添加项目编号11,则应删除项目编号0,并确保列表仅包含最后10个项目

是否有任何库或算法可以实现这一点,或者我必须自己实现算法?

我建议

默认情况下,树集按您放置的元素的自然顺序排序,但也可以传递您自己的

在==10的情况下,您可以随时检查设备是否已满负荷

然后,如果需要添加第11个元素,可以先添加,然后添加。

您可以使用Google Guava库中的。根据文件:

逐出队列必须配置为最大大小。每一次 元素添加到完整队列时,队列将自动删除其 头部元素


您可以使用
LinkedHashMap
轻松创建自己的缓存机制

记住这一点,您可以创建一个由
LinkedHashMap
支持的新缓存对象,该对象将被
RemoveedStantry
覆盖,以检查您想要的条件


由于每次调用
put
putAll
时都会调用
Removeedestentry
,因此这将自动刷新缓存并删除不需要的条目。

如果您的数据不包含重复项,您可以使用它,但不应包含重复项请参阅这应该是可接受的答案-不需要第三方库,现在已经有了一种特殊的方法。