Java 有效地确定应删除列表中的元素

Java 有效地确定应删除列表中的元素,java,android,algorithm,Java,Android,Algorithm,我正在Android上制作一个聊天室应用程序。在应用程序中,每隔5秒,它将向服务器发送一个请求,以获取已连接用户的列表,并将其作为按钮发送到面板。如何有效地确定用户是否已断开连接(是否应从列表中删除) try1: 有2个列表,一个存储当前在线列表间隔,两个存储下一个在线列表间隔。然后比较。。。。O(n^2)比较和2n记忆 try2: 有1个列表,每个间隔删除面板中的所有按钮,并在每个间隔重新创建它们 它们看起来都是丑陋的解决方案。有什么建议吗?如果两个列表被排序,我们可以在O(n)时间内比较它们

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

try1:

有2个列表,一个存储当前在线列表间隔,两个存储下一个在线列表间隔。然后比较。。。。O(n^2)比较和2n记忆

try2:

有1个列表,每个间隔删除面板中的所有
按钮
,并在每个间隔重新创建它们


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

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

尝试类似于
TreeMap的方法。顺便说一句,“过早优化是万恶之源”。:-)你为什么这么担心优化这个?听起来很琐碎