java - 有效地确定列表中的元素应该被删除

标签 java android algorithm

我正在 Android 上制作聊天室应用程序。在应用程序中,每 5 秒,它会发送一个服务器请求以获取已连接用户的列表,并将它们作为 Button 放在面板上。如何有效地确定用户是否已断开连接(是否应从列表中删除)?

尝试1:

Have 2 list, one stores current interval of online list, two stores next interval of online list. Then compare .... O(n^2) comparasions and 2n memory;

尝试2:

Have 1 list, each interval deletes all Button in the panel, and recreate them each interval.

它们看起来都是一个丑陋的解决方案。有什么建议吗?

最佳答案

如果两个列表已经排序,我们可以在 O(n) 时间内比较它们。因此,我建议您先对列表进行排序(在 O(nlogn) 时间内),然后再进行比较。希望服务器按顺序返回列表(可能按用户登录时间),您可以直接比较而不排序。

关于java - 有效地确定列表中的元素应该被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466786/

相关文章:

c++ - 如何根据 set.begin() 的偏移量迭代 std::set?

java - 在添加到 jcomponent 的容器上绘制

java - Antlr4 - 子句的排序

java - Spring Rest - 具有 @ManyToOne 映射的字段为 null

Android AsyncTask publishProgress 不更新对话框

c - 从二进制可见性图制作羽化可见性图

Java仅调用以parent作为函数参数的方法

android - 错误您需要将 Theme.AppCompat 主题(或后代)与 Activity 一起使用

android - GridView : Using RecyclerView or Simply TextView with clickable words

algorithm - 面试 - 在数组中查找幅度极点