假设我的自定义对象的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)中的MapO(n)中的List



一般来说,这是糟糕的设计。阅读Effective Java第16项,以更好地了解原因-或查看此article

10-07 19:00
查看更多