Madhur Ahuja:
假设我有一个ArrayList<Account>
非常简单的自定义对象。例如:
class Account
{
public String Name;
public Integer Id;
}
我想Account
基于Id
应用程序许多部分中的参数来检索特定对象。最好的方法是什么?
我本来打算扩展,ArrayList
但我确信必须有更好的方法。
阿米尔·阿富汗尼:
听起来您真正想使用的是一个Map
,它允许您基于键检索值。如果您坚持使用ArrayList
,则唯一的选择是遍历整个列表并搜索对象。
就像是:
for(Account account : accountsList) {
if(account.getId().equals(someId) {
//found it!
}
}
与
accountsMap.get(someId)
这种操作O(1)
在中Map
,相对于O(n)
中List
。
我当时在考虑扩展ArrayList,但我确信必须有更好的方法。
一般来说,这是糟糕的设计。阅读有效的Java项目16可以更好地理解为什么-或查看本文。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句