ArrayList
contains()
方法和设置重复过滤有什么区别?使用它的优点是什么?
答案 0 :(得分:0)
如果您有Set
,则可确保其不能包含基于equals
的重复元素。使用List
,它不会自动执行此操作。你必须使用
if(!list.contains(element)){
list.add(element);
}
另见What is the difference between Set and List?
至于性能,这取决于您的使用模式。这取决于您经常进行的操作。无论如何,如果您没有任何特殊要求可以优化性能,请使用Set
,因为这样可以使您的意图更加清晰。
答案 1 :(得分:0)
设置保证不重复。如果您想拥有一个没有重复项的Collection,使用Set意味着您不需要自己进行重复删除。因此,您需要编写,测试和调试更少的代码。这会让你更有效率。您可以使用Set实现中的代码替换您可能编写的代码。由于该代码的编写者可能是比你更好的编程人员,因此代码将比你编写的代码更高效,更少错误。特别是HashSet实现过去插入。任何人阅读你的代码(包括你的未来)都有一个Set而不是Collection或List,可以立即看到该集合没有重复。它使您的代码部分可靠地记录自己。