gpt4 book ai didi

java - 使用 Java 以最少的迭代从 Set 中查找和删除特定对象

转载 作者:行者123 更新时间:2023-11-30 08:26:11 25 4
gpt4 key购买 nike

我有一组对象,每个对象都有自己的 id...

我还有一个 id 列表,每个 id 表示要从集合中删除的对象的 id。

不幸的是,我需要最有效的方法来执行此操作...显然,我可以遍历集合,并针对列表中的每个条目遍历以查看 ID 是否匹配...

但是有没有更快的方法呢?我想知道使用 Map 将 id 映射到集合中每个对象的位置是否会更快?跟踪会比较多,但是这里的效率是重中之重——集合本身是动态的,这个操作会经常发生……

情况本质上是我有一个服务器线程正在关闭另一个线程已确定为空闲的套接字,并且服务器线程需要尽快完成此操作,以便它可以恢复其正常职责......不幸的是服务器线程是唯一允许关闭套接字以避免并发问题的线程......

有没有更好的方法来做到这一点?

最佳答案

我赞同@HovercraftFullOfEels 的评论。

扩展一下:

HashMap 替换您的 Set。使用对象的 ID 作为键,对象本身作为值。然后,无论何时您需要删除一个对象,这都是一个简单的问题

map.remove(id);

一般来说,任何时候你需要随机访问任何形式的 Collection 你最好使用 Map 的一些变体来代替(HashMap是最常见的)

关于java - 使用 Java 以最少的迭代从 Set 中查找和删除特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21737726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com