假设我的自定义对象的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
。一般来说,这是糟糕的设计。阅读Effective Java第16项,以更好地了解原因-或查看此article。