如何在java中轻松删除链表中的重复项?
答案 0 :(得分:16)
改为使用LinkedHashSet,然后您就不会有重复项。
答案 1 :(得分:9)
我不知道您的要求是否使用链接列表但如果不是,请使用Set而不是List(您将问题标记为'best-practices')
答案 2 :(得分:3)
轻松的是什么?如果它是一个相当短的列表,最简单的解决方案是将其转储到Set,然后再转回List。
myList = new LinkedList<Whatever>(new HashSet<Whatever>(myList));
但为什么要为此烦恼呢?如果你不想要重复,你应该使用Set
;如果你只想要一个列表,以便你可以保持元素的插入顺序相同,你可以使用LinkedHashSet
来充分利用这两个世界:Set
可预测地迭代{ {1}}。
答案 3 :(得分:2)
搜索它们,如果两个代表相同的东西,则删除其中一个。
你还想要什么?您想获得有关如何快速完成此操作的建议吗?如果是这种情况,请将节点存储在哈希表中,以便在查找重复项时轻松匹配。