当前位置: 首页 > 面试题库 >

HashSet和Set有什么区别?

秦俊豪
2023-03-14
问题内容

看到这样的代码片段

Set<Record> instances = new HashSet<Record>();

我想知道Hashset是否是一种特殊的设置。他们之间有什么区别吗?


问题答案:

A Set代表通用的“一组值”。A TreeSet是对元素进行排序(并由此排序)HashSet的集合,a 是对元素进行
排序或排序的集合。

A HashSet通常比A 快很多TreeSet

TreeSet通常将A 实现为一棵红黑树(请参阅http://en.wikipedia.org/wiki/Red-
black_tree-
我尚未验证sun /
oracle的实际实现TreeSet),而HashSet使用a
Object.hashCode()在其中创建索引数组。红黑树的O(log(n))访问时间为HashSet,从恒定时间到最坏的情况(每个项目都具有相同的hashCode)的访问时间范围为线性搜索时间O(n)



 类似资料:
  • 本文向大家介绍Set和WeakSet有什么区别?相关面试题,主要包含被问及Set和WeakSet有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 Set 有 forEach keys values 等方法,类数组结构,可以 add 进各种类型,可以用 keys 和 for-in 取出; WeakSet 没有那些方法,只能 add 进对象,没法取出,只能 has 判断。 将它们视为始终去重的数

  • 问题内容: 和接口之间的根本区别是什么? 问题答案: 是元素的有序序列,而元素是无序的独特列表。 有序集合(也称为序列)。该界面的用户可以精确控制列表中每个元素的插入位置。用户可以通过其整数索引(列表中的位置)访问元素,并在列表中搜索元素。 一个不包含重复元素的集合。更正式地说,集合不包含元素对e1和e2,使得e1.equals(e2)最多包含一个空元素。顾名思义,此接口对数学集合抽象进行建模。

  • 我仔细阅读了Vue文档“深度反应性”和vm的API。$set和Vue.set但我仍然很难确定何时使用哪个。能够区分两者对我来说很重要,因为在我当前的Laravel项目中,我们动态地设置了对象的许多属性。 文档中的区别似乎在于vm使用的语言。$set是“用于Vue实例”,而Vue.set是“用于普通数据对象”,并且Vue.set是全局的: 但是,有一些方法可以添加属性,并在创建实例后使其具有反应性。

  • 在一个android、kotlin项目中,看到这个< code>@set:Inject,但找不到一个好的解释。有人知道吗?

  • 问题内容: 今天打开了LinkedHashSet源代码,发现了一些有趣的东西: 问题是:为什么当HashSet已经是Set时,为什么它们既需要“ extends HashSet”又需要“ implements Set”? 问题答案: 我问过乔什·布洛赫(Josh Bloch),他告诉我这是一个错误。很久以前,他曾经认为其中有一些价值,但是他自从“看到了光”。显然,JDK维护人员认为以后不应该撤消此

  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。