java - 删除 ArrayList 中的重复项 - Java

标签 java arraylist duplicates

我的 Java 代码有一些问题。我应该使用循环而不是任何其他方法。 假设我的 ArrayLis t 包含

[Dog Cat Dog Dog Cat Dog Horse]

我的目标也是删除 Dog 和 Cat 的副本,因此我的最终结果等于

[Dog Cat Horse]

public void removeDouble(){

int counter = 0;
for (int i = 0 ; i < animals.size(); i++) { 
    for (int j = 1+i;  j < animals.size() ; j++)  
        //don't start on the same word or you'll eliminate it.
        if ( animals.get(j).equals( animals.get(i) )  ) {
            animals.remove(animals.get(j));
           counter++;

        }                                
    } 
}

感觉“逻辑”是正确的,但我的代码运行得不太好。有人可以帮我一点吗?

最佳答案

你可以这样做。

 ArrayList<String>list=new ArrayList<>();
    list.add("A");
      list.add("B");
      list.add("C");
      list.add("A");
    System.out.println("Before "+list); // output[A,B,C,A]


    Set<String> listWithoutDuplicates = new LinkedHashSet<String>(list);
     list.clear();

    list.addAll(listWithoutDuplicates);
    System.out.println("list without duplicates : " + list);// output[A,B,C]

关于java - 删除 ArrayList 中的重复项 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042660/

相关文章:

java - 使用 JTable 和 JScroll Pane 进行滚动锁定

java - 在 geomesa accumulo 数据存储中获取动物园实例的异常

java - 使用弹出窗口将项目添加到数组列表

java - Java Swing中的鼠标指针问题

java - 从笛卡尔积中获取不同记录的算法

java - 从 Arraylist 中获取 float 而不是对象

java - Kotlin BigInteger 到 BigDecimal 转换

java - 从有界 nextInt(int bound) 结果中查找 Java.util.Random 种子

java - 如何在不使用 Set 的情况下计算 ArrayList 中的不同字符串?

jquery - PrettyPhoto 复制 contenthover 中的第一张图像 (jQuery)