我需要通过属性查找对象。
一种选择是迭代对象数组并检查属性匹配的每个对象。
另一个选项是将对象放在hashmap中,并将属性作为键。然后,人们可以通过属性简单地检索对象。
尽管你复制了属性数据,第二种选择是否是良好的做法?
注意:该属性被假定为唯一
答案 0 :(得分:6)
YES!根据您提供的内容,使用Map通常总是更好。在Map中找到一个值(其中键具有良好的散列函数)是 O(1)。在数组或列表中查找元素是 O(n)。
答案 1 :(得分:1)
如果属性是唯一的,并且有很多要搜索的对象,或者您需要对它们进行大量搜索,请确保 - 创建索引。这通常是权衡 - 记忆超速。
OTOH,如果没有很多物品,或者你没有做很多事情,那么两种方式都无关紧要。