gpt4 book ai didi

arraylist - 使用 ArrayList 或 HashMap

转载 作者:行者123 更新时间:2023-12-04 14:36:40 24 4
gpt4 key购买 nike

嗨,我有一个关于是否使用 ArrayList 的问题或 HashMap .

我正在尝试构建一个 Paint 程序。
每个绘制的对象将被分配一个唯一的对象 ID .

如果我想在单击对象时获得更快的检索速度,我应该使用 arraylist 吗?或 hashmap ?

一般来说,hashmap 的检索速度为 O(1),而 arraylist 的检索速度为 O(n)。

但是,我认为对于我的情况,因为当我点击一个对象时,我会得到 ID,因此是数组的索引,我可以做一些类似 ArraylistObject.get(ithElement); 的事情。 ,所以在这种情况下,这也将是一个 O(1) 检索过程?

任何输入?

谢谢!

最佳答案

如果对象的 ID 可以 1 对 1 映射到数组,那么也将是 O(1) 访问,并且实际上将比哈希映射查找稍快(您不必计算哈希)。

但是,问题将是删除对象时会发生什么。您将在列表中留下一个漏洞。在创建新对象时,您可以继续添加到列表中并让它慢慢变得更加碎片化,或者尝试找到一个空闲插槽,在这种情况下,您将进行 O(n) 搜索以查找空闲空间。

简而言之 - 哈希图可能更合适。

关于arraylist - 使用 ArrayList 或 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2005610/

24 4 0