Collections 核心Java集合框架

Collections 核心Java集合框架,collections,Collections,如果我们要在集合中添加一个元素,集合中已经添加了2000个元素,它将如何快速搜索新添加的元素在集合中是否已经存在?如果您的集合中有数千个元素,并且您希望在诸如add之类的操作中获得比使用HashSet更好的性能,移除并包含 HashSet最快,LinkedHashSet在性能上排名第二,或者几乎与HashSet相似,但TreeSet稍慢一些,因为它需要在每次插入时执行排序操作 HashSet和LinkedHashSet提供恒定的时间成本,例如O(1),而TreeSet提供此类操作的日志(n)时间

如果我们要在集合中添加一个元素,集合中已经添加了2000个元素,它将如何快速搜索新添加的元素在集合中是否已经存在?

如果您的集合中有数千个元素,并且您希望在诸如add之类的操作中获得比使用HashSet更好的性能,移除并包含

HashSet最快,LinkedHashSet在性能上排名第二,或者几乎与HashSet相似,但TreeSet稍慢一些,因为它需要在每次插入时执行排序操作


HashSet和LinkedHashSet提供恒定的时间成本,例如O(1),而TreeSet提供此类操作的日志(n)时间成本。HashSet不维护任何顺序,而LinkedHashSet维护元素的插入顺序。

您使用的是哪个
Set
实现?您可以使用SortedSet(例如TreeSet)HashSet实现集合是不能包含重复元素的集合。它有一个排序机制。如果您有2000个元素并希望快速搜索,则可以使用排序集或树集。TreeSet将元素按自然顺序排列,或通过提供的比较器排列。sortedSet还可以使元素保持自然顺序。