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

Java HashSet与阵列性能

谭桐
2023-03-14
问题内容

我有一个保证是不同的对象的集合(尤其是由唯一的整数ID索引)。我也确切地知道它们中有多少(并且数目不会改变),并且想知道Array是否比HashSet在存储/检索所述元素方面具有显着的性能优势。

在纸上,Array保证了恒定的时间插入(因为我提前知道了大小)和检索,但是HashSet的代码看起来更简洁并且增加了灵活性,所以我想知道是否会因为使用它而失去任何性能方面的信息,至少在理论上是这样。


问题答案:

取决于您的数据;

HashSet给您一个O(1)contains()方法,但不保留顺序。

ArrayListcontains()是,O(n)但是您可以控制条目的顺序。

Array如果您需要在两者之间插入任何内容,则最坏的情况是O(n),因为您将不得不向下移动数据并为插入留出空间。在中Set,您可以直接使用SortedSet which too has O(n) too but with flexible operations.

我相信Set更灵活。



 类似资料:
  • 问题内容: 在知道数组索引的情况下,使用Arrays或HashMaps更好(在性能方面)吗?请记住,示例中的“对象数组/映射”只是一个示例,在我的真实项目中,它是由另一个类生成的,因此我不能使用单个变量。 ArrayExample: HashMapExample: HashMap看起来好得多,但我确实需要在此方面具有性能,因此具有优先权。 编辑: 那么是数组,仍然欢迎建议 编辑: 我忘了提,Arr

  • 所以,我正在尝试匹配 2 个不同的数组。如果相同的单元格匹配,我想使用 .slice 方法从一个数组中删除该单元格。 编辑:我想做的是从数组1中移除一个数字,如果数组2包含一个匹配的数字。代码现在的工作方式是只删除1个条目。我要删除第一个数组中的所有条目。 我尝试运行这个,在控制台日志下,array1没有变化。似乎拼接方法没有删除任何单元格。我搜索了SE,但没有找到任何可以帮助我的东西。

  • 首先,我知道Firestore是如何工作的,并且花了很多时间评估不同的方法以获得良好的结构。但我仍在考虑以下情况: 有一个已知食谱的数据库。用户可以添加菜谱,但必须确认它们是真正的菜谱,而不仅仅是一些变体。因此,每个用户都可以从用户生成的食谱列表中选择receipes,说明他们知道如何烹饪(或添加新的)。 现在,我希望用户与其他人分享他们的receipes列表,但我不确定如何最好地使用Firest

  • 我正在尝试使用 Jolt 从一个 JSON 数组转换为另一个数组。它由一个没有键的嵌套 JSON 数组组成。 这是我的意见: 我想得到以下输出: 我能够使用此规范文件为单个嵌套数组元素添加键: 但我不知道如何将此应用于外部JSON数组。

  • 包含5911个时间戳 包含5911个样本,每个样本具有20个mfcc特征。 因此,如果您查看 ,它将如下所示: (5911,) (5911, 20) 我想将这两者结合起来,以便: 在R中,我可以简单地 我如何在python中实现这一点? 因此最终数据如下所示: 其中,这些时间1到时间5911只是所需的\u time\u标记中包含的值 我试过: 但出现了这个错误 然后我尝试转置: 但同样的错误: 我

  • 问题内容: 我想知道从ArrayList转换为Array是否安全/建议?我有一个文本文件,每行一个字符串: 我想将它们读入数组列表,然后将其转换为数组。建议这样做/合法吗? 谢谢 问题答案: 是的,将转换为是安全的。一个好主意取决于您的预期用途。您需要提供的操作吗?如果是这样,请将其保留为。否则转换掉! 输出