示例
List list =
new
ArrayList();
...
if
(!list.contains(someObject)) {
...
list.add(someObject);
...
}
解决方案
给定的示例中,列表“contains”方法将执行线性搜索,如果列表很大,该方法的开销会很大。若更改为集合,将不需要调用 contains,因为集合能够保证唯一性。建议更改:
Set set =
new
HashSet();
...
set.add(someObject);
...
如果插入顺序很重要,那么使用 LinkHashSet 代替 HashSet。建议更改:
Set set =
new
LinkedHashSet();
...
set.add(someObject);
...