谁能帮我弄清楚 SortedMap、CheckedSortedMap、synchronizedSortedMap 之间的区别。我真的很难决定何时使用哪一个?
提前致谢。
谁能帮我弄清楚 SortedMap、CheckedSortedMap、synchronizedSortedMap 之间的区别。我真的很难决定何时使用哪一个?
提前致谢。
SortedMap
是一个接口,它是一个 Map(键值对),并带有一个附加的合约,即在其键上以某种定义的方式进行排序。由于键的排序,SortedMap 有额外的方法SortedMap<K,V> subMap(K fromKey, K toKey)
,比如SortedMap<K,V> headMap(K toKey) ...
'普通' Maps 没有。如果你迭代一个 sortedMap 的键集,你会发现一个明确的顺序。
ATreemap
是该接口的实现。如果您自己创建一个新的 SortedMap 对象,它几乎总是选择TreeSet
.
对于checkedSortedMap
或任何其他Collections.checkedXXX()
方法,以下是关于它们的用途的很好的讨论:Java 中的 Collections.checkedList() 调用是什么?
Collections 框架中的类默认情况下是不同步的。对于地图,这意味着如果您有一个在两个或多个线程之间共享的地图,并且一个正在执行 aput(A, value)
并且另一个线程也在地图上同时调用put(A, othervalue)
,则可能会发生奇怪的事情。Collections.synchronizedSortedMap(sortedMap)
方法给出了一个同步的映射,它包装了给定的映射并具有适当的锁定机制。
SortedMap
是一个接口,由ConcurrentSkipListMap, TreeMap
类实现。
用于Collections.synchronizedSortedMap
获取已排序映射的线程安全(同步)视图。在多线程环境中很有用。
用于java.util.Collections.checkedSortedMap
获取指定排序映射的动态类型安全视图。