ArrayList contains()方法和设置重复筛选之间的差异



ArrayList contains()方法和设置重复过滤有什么区别以及使用它的优势?

如果您有Set,它会确保它不能包含基于equals的重复元素。使用List时,它不会自动执行此操作。你必须使用

if(!list.contains(element)){
    list.add(element);
}

另请参阅Set和List之间的区别是什么?

至于性能,这取决于您的使用模式。这取决于你经常做哪些操作。无论如何,如果您没有任何特殊的要求来优化性能,请使用Set,因为它可以让您的意图更加清晰。

Set保证不重复。如果您想要一个没有重复的集合,使用集合意味着您不需要自己进行重复消除。因此,您需要编写、测试和调试更少的代码。这会让你更有效率。您可以用Set实现中的代码替换可能编写的代码。由于该代码的编写者可能比你优秀得多,因此该代码将比你所能编写的代码更高效、更少bug。HashSet实现尤其会执行过去的插入。任何阅读您的代码(包括未来的您)的人,如果有Set,而不是Collection或List,都可以立即看到该集合没有重复项。它使您的代码部分地、可靠地文档化。

最新更新