Java中的异步函数调用

Emp*_*uin 6 java asynchronous

假设您有三个类A,B,C,每个类都有自己的搜索功能.我想使用所有三个搜索功能同时运行一个键(比如'searchKey').如果从三个函数中的一个获得结果,如何停止其他两个搜索功能?

这也会比我在每个类中都有一个独特的hashmap并且一个接一个地搜索它们的情况运行得更快,因为搜索解析为一个恒定的时间复杂度?

Mur*_*göz 4

您需要公开一个公共方法来停止搜索,例如取消相应类中线程的标志。

对于第二点, a 中键搜索的时间复杂度HashMap通常为(如果这些键位于同一个哈希桶中,则O(1)最坏情况)。O(n)所以没有太大的优化空间,因为它已经非常快了。如果您按顺序搜索,您甚至不会注意到这一点HashMaps