java - 如何从列表中删除重复项

标签 java

我有一个包含元素的列表,我想删除重复项。我尝试过这样做,但没有成功。

这是代码:

//list is the original list containing duplicates
Iterator it1=list.iterator();//iterator1 
 while (it1.hasNext())
  {
    Iterator it2=list.iterator(); //iterator2
    if(it1.next().equals(it2.next()))
     {
       //liststeps is the list without duplicates
       liststeps.add(it1.next());
     }
  } 
System.out.println("multiple list  "+list.toString());
System.out.println("list  "+liststeps.toString()); 

结果:

multiple list  [Open, In Progress, Waiting Customer Test, Closed, Open, Step11, Step22,  Open, In Progress, Waiting Customer Test, Closed]
list  [In Progress, Step11, In Progress]

最佳答案

使用 Set而不是列表。您可以使用addAll()将列表添加到集合中,然后将其转换回列表或仅使用集合。如果顺序相关,请使用 LinkedHashSet .

只是一个建议:使用 for-each而不是迭代器......它更容易:-)

关于java - 如何从列表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6705786/

相关文章:

java - 多个客户端在没有服务器的情况下查询数据

java - Eclipse 风格的 JTabbedpane

java - 即使预定时间已过, quartz 作业仍会触发

java - AppEngine 下载图

java - Android:启动相机应用程序现在会使应用程序崩溃

java - 为什么我的代码在 obj==null 时才有效?

java - 通过WebDriverEventListener打印WebElement变量名

java - 如何使用 Selenium Webdriver 识别特定文本的语言

java - 将值返回给 main 方法

java - 如何让 Java 匹配 JavaScript 的 encodeURIComponent() 方法?