【发布时间】:2019-04-19 03:33:06
【问题描述】:
所以,我正在使用 Java 中的一个现有方法,该方法返回一个列表 (ArrayList)。但是,我想为其添加一些功能,以便如果指定,它将排除某个对象。现在我明白了,通常在 HashSet 上使用 contains() 会产生比 ArrayList 更好的性能,但我想知道在我下面的两种代码变体中是否有合理的性能提升:
注意:listOfAccounts 是从 DAO 调用返回的 ArrayList。 personalAccount 是 Account 类型的 Object。
if (excludePersonalAccount) {
Set<Account> accounts = new HashSet<Account>(listOfAccounts);
if (accounts.contains(personalAccount) {
listOfAccounts.remove(personalAccount);
}
}
VS
if (excludePersonalAccount) {
listOfAccounts.remove(personalAccount)
}
【问题讨论】:
-
@JacobG。对,我明白了。刚刚注意到
Set<Account> accounts基本上是listOfAccounts但作为一个集合......现在需要睡觉了。 :)
标签: java list arraylist contains hashset