获取地图子图的最快方法是什么?

6

我有一张地图,想知道是否有一种方法可以根据某些条件获取一些子地图。 有什么有用的库吗?


2
你能举一个条件的例子吗? - Liviu T.
1
子地图是否需要由原始地图支持(即,您希望更新在两者中都可见)? - Thilo
2个回答

5
Guava中,Maps类包含三种不同的过滤方法,具体取决于您想要按键、值还是两者都过滤。

请注意,Guava Maps的过滤方法并未针对性能进行优化,因为它们维护了一个实时视图并通过谓词进行过滤,导致像size()和contains这样的方法具有O(n)的性能。Javadoc针对这种情况发出了一些警告,并建议将视图实现化。 - tkruse
如果条件类似于 keyCollection.contains(key),那么最好的做法是遍历 keyCollection 并为每个键调用 map.get(),这样效率会更高。 - tkruse

3
也许一个可导航地图可以满足您的需求,这取决于条件是什么。它非常快,O(log n),而大多数过滤器则为O(n)。它可以获取小于、大于或在两个键之间的子映射。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接