HashSet 和TreeSet是Set的典型實現(xiàn)。HashSet 比TreeSet性能好,TreeSet需要額外通過紅黑樹算法維護集合 的順序。除了需要維護集合的順序外,其他的都優(yōu)先用HashSet 。
LinkedHashSet 比HashSet 慢,但是因為有鏈表,所以遍歷他就更快。
EnumSet是性能最好的,但是只能保存同一個枚舉類的成員作為元素。
注意:該三個實現(xiàn)類都不是線程安全的。需要手動保證Set集合的同步
解決:Collections的工具類synchronizedSortedSet,包裝下Set集合
例子:
SortedSet s =Collections.synchronizedSortedSet(new TreeSet());
Collections 工具類其他同步方法:
synchronizedCollection(Collection<T> c)
這個方法返回一個同步的(線程安全的)集合的指定集合的支持。synchronizedList(List<T>list)
這個方法返回由指定列表支持的同步(線程安全的)列表。synchronizedMap(Map<K,V> m)
這個方法返回一個同步的(線程安全)由指定映射支持。synchronizedSet(Set<T> s)
這個方法返回一個同步的(線程安全的)集由指定set支持。-
synchronizedSortedMap(SortedMap<K,V> m)
這個方法返回一個同步的(線程安全的)有序映射所指定的有序映射支持
浙公網(wǎng)安備 33010602011771號