在Java的列表中找到重复项

Java教程 2025-08-25

从Java的列表中删除重复项很容易。 Java中有多种功能简化了该过程。

在Java列表中查找重复项?这实际上更为复杂,但是在列表中找到dupes绝不是不可能的任务。

如何在Java列表中找到重复项

从Java列表中删除重复项的最常见方法包括:

  1. 使用嵌套环的蛮力比较。

  2. 使用标签来找到独特的重复项。

  3. 多个列表和标签的联合使用。

  4. 使用Java流API查找重复项。

  5. Java集合类中的频率方法的使用。

蛮力的爪哇副本查找器

解决此问题的蛮力方法涉及一次浏览一个元素并寻找比赛。如果找到匹配,则将匹配项放在第二个列表中。

列表 myList = list。 ( 0、1、1、2、3、5、6、0、0、1、5);List  deplicates = new ArrayList ();for ( int x = 0; x 

该代码执行后,将打印出复制的项目:

 [0,1,1,5,0]

如何找到一组重复项

如果您只需要唯一的重复项列表,则可以使用标签集而不是ArrayList来保存重复项。这是这样做的代码:

列表 myList = list。 ( 0、1、1、2、3、5、6、0、0、1、5);hashset 重复= new Hashset ();for ( int x = 0; x 

当此代码运行时,它将打印出列表中唯一的重复集合,即:

 [0,1,5]

优化使用标签以查找重复项

当项目添加到主题集中时,如果项目是新的,则添加方法返回true,如果项目是重复的,则false

我们可以使用这种行为来提高算法的速度和可读性。

在改进的重复查找器中,创建第二个列表以保存重复项。首先尝试将项目添加到标签中,如果标签表明该项目已经在集合中,请将该重复添加到列表中:

列表 myList = list。 ( 0、1、1、2、3、5、6、0、0、1、5);hashset  uniqueItems = new Hashset ();List  deplicates = new ArrayList ();对于(对象项目:myList){ 如果(!uniqueItems.add(item)){重复。add(item);}}系统。 Out .println(重复);

当此代码运行时,它会打印出以下结果:

 [1,0,0,1,5]

如何使用Java流找到重复

我们可以将上述标签的提高速度与Java流的速度和效率相结合,以创建非常简洁的机制。这就是下面的代码从Java列表中删除重复的方式:列表 myList = list。 ( 0、1、1、2、3、5、6、0、0、1、5);HashSetuniqueItems = new Hashset();列表重复= mylist.stream().filter(n->!uniqueItems.Add(n)).tolist();系统。 Out .println(重复);

当该代码运行时,它会打印出来:

 [1,0,0,1,5]

如何在列表中找到重复项的频率

在Java列表中查找重复项的另一种方法是使用集合类的频率方法。

此示例打印出列表中每个唯一元素发生的次数,这对原始需求有点扭曲。

以下代码完成了三件事:

  1. 基于原始列表创建独特值的标签。

  2. 循环通过标签中的独特元素。

  3. 打印出列表中每个唯一元素的出现。

列表 myList = list。 ( 0、1、1、2、3、5、6、0、0、1、5);hashset 重复= new Hashset (myList);for (对象重复:重复){系统。 Out .print(重复);系统。 out .print(“出现:”);系统。 out .println(collections。频率(myList,副本));}

当该代码运行时,它会打印出来:

 0发生:31发生:32发生:13发生:15发生:26发生:1

在Java列表中重复

有许多方法可以在列表中查找和识别列表中的重复元素,从蛮力解决该问题,到效率高效的哈希图和Java流API。

评估您的个人用例,并确定哪种方法最适合您。