使用hashmap索引对象列表是一种好习惯吗?

sia*_*mii 3 java list hashmap

我需要通过属性查找对象.

一种选择是迭代对象数组并检查属性匹配的每个对象.

另一个选项是将对象放在散列映射中,并将属性作为键.然后可以通过属性简单地检索对象.

尽管您复制了属性数据,但第二种选择是否是良好的做法?

注意:假定该属性是唯一的

Joh*_*n B 6

是!根据您提供的内容,使用Map通常总是更好.在Map中找到一个值(其中键具有良好的散列函数)是O(1).在数组或列表中查找元素是O(n).

  • 要记住的一件事是,如果你有很多对象,那么你的地图将不得不经常重建自己,这可能是昂贵的 (2认同)
  • @hvgotcodes那仍然是摊还的O(1).即使不是,增长地图仍然只有O(N). (2认同)