java - 在 arraylist 中查找重复值

标签 java search arraylist duplicates

我有一个 ArrayList<Car>

例如

class Car{
   String carName;
   int carType;
}

现在,我必须找出列表中是否有同名的汽车。执行此操作的最佳方法是什么?

最佳答案

创建一个比较器:

public class CarComparator implements Comparator<Car>
{
    public int compare(Car c1, Car c2)
    {
        return c1.carName.compareTo(c2.carName);
    }
}

现在将ArrayList中的所有汽车添加到一个SortedSet中,最好是TreeSet;如果有重复添加到重复列表:

List<Car> duplicates = new ArrayList<Car>();
Set<Car> carSet = new TreeSet<Car>(new CarComparator());
for(Car c : originalCarList)
{
    if(!carSet.add(c))
    {
        duplicates.add(c);
    }
}

最后,在您的 duplicates 中,您将拥有所有重复项。

关于java - 在 arraylist 中查找重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7281352/

相关文章:

c++ - 如何在boost regex_search中获取原始字符串前缀

引用列名的所有表/函数的 PostgreSQL 列表

Java:2个包含不同顺序的相同元素的列表 - 如何删除相同的元素?

java - 当使用 Math.sqrt() 作为参数时,List contains 方法返回 false

java - 为什么我的数组没有出现在 ListView 中?

java - 如何转义字符串以存储在 JSON 中

java - Spring MVC 中哪个是 Controller 哪个是 HandlerMapping?

java - 如何使用paintComponent以不同的方法进行不同的绘图?

ios - UISearchBar - 不显示搜索结果

java - Android DownloadManager - 下载 apk 并安装