我正在制作一个应用程序,用户将在其中通过网络在共享文档上键入内容。
问题之一是阻塞其他用户正在输入的行。
为此,我有一个 DocumentListener
来检查行更改。当用户成功移动到新线路(这意味着该线路未被使用)时,监听器将通知其他用户该线路现在已被使用。
DocumentFilter
将在每次编辑时检查该行是否被阻止,然后再允许编辑。
现在,我关心的问题之一是哪种集合最适合存储行号。该集合将仅包含Integer
。当一条线路被阻塞时,它将被添加到该集合中。当 DocumentFilter
需要检查某行是否可用时,它将遍历该列表。此外,当使用该线路的用户移动到新线路时,会发送另一条消息,该消息将从用户集合中删除该线路。
我知道 ArrayList
可能就足够了,尽管我希望有人可能有不同的想法。
最佳答案
如果用户添加新行怎么办?每个存储的行都必须重新定位/重新编号。 如果用户退出程序或程序崩溃或只是他回家吃晚饭怎么办?您是否实现某种超时?
无论如何,一个 SortedSet 就可以了,但你也许应该在集合项中存储过期时间..
关于java - 用于存储阻塞线路的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111791/