代码之家  ›  专栏  ›  技术社区  ›  Bobby

如何在Java中轻松删除链表中的重复项?

  •  0
  • Bobby  · 技术社区  · 16 年前

    如何在Java中轻松删除链表中的重复项?

    5 回复  |  直到 13 年前
        1
  •  9
  •   victor hugo    16 年前

    我不知道你的要求是不是要使用一个链接列表,但如果不是,使用一个集合而不是列表(你把这个问题标记为“最佳实践”)。

        2
  •  16
  •   OtherDevOpsGene    16 年前

    使用A LinkedHashSet 相反,这样你就不会有副本了。

        3
  •  3
  •   Michael Myers KitsuneYMG    16 年前

    简单地说什么?如果它是一个相当短的列表,最简单的解决方案是将其转储到一个集合,然后再返回到一个列表。

    myList = new LinkedList<Whatever>(new HashSet<Whatever>(myList));
    

    但是为什么要为此烦恼呢?如果您不想复制,您应该使用 Set ;如果您只需要一个列表,以便可以保持元素插入的顺序相同,则可以使用 LinkedHashSet 两个世界都能做到最好:A 集合 可以预见,它就像 LinkedList .

        4
  •  2
  •   Welbog    16 年前

    搜索它们,如果两个代表相同的东西,删除其中一个。

    你还想要什么?你想知道如何快速完成这个任务吗?如果是这样,请将节点存储在哈希表中,以便在查找重复项时进行匹配。

        5
  •  1
  •   mahesh    13 年前
    import java.util.*;
    import java.lang.*;
    
    class Main
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            Collection<String> c = new LinkedList<String>();
            c.add("JAR");c.add("BDK");c.add("JDK");c.add("JAR");c.add("WAR");c.add("APK");c.add("BDK");
            c=new HashSet(c);
            c=new ArrayList(c);
            for(String s : c)
            {
                System.out.println(s);
            }
        }
    }