比较2对象列表java

时间:2016-08-18 08:49:21

标签: java

我需要比较同一类型对象的2个列表。我可以得到关于哪种方法最快的建议。

E.g

public class Cars {
String engine;
String brand;
String etc ..;

我得到了方法compareCars(List a,List b),如果只有一次出现两者中的Cars相同,则返回true。

1 个答案:

答案 0 :(得分:0)

首先,类名应该是单数 - Car

    I suggest the following code.

你可以覆盖hashCode()和equals()来比较两辆汽车。

boolean compareCars(List<Car> cars1, List<Car> cars2) {
    boolean isSingleOccuranceMatch = false;
    for (Car car : cars1) {
        if (cars2.contains(car)) {
            isSingleOccuranceMatch = true;
            break;
        }
    }

    return isSingleOccuranceMatch;
}

不需要变量isSingleoccuranceMatch。

    This is just for readability.

你可以直接返回true而不是break,并在完成所有迭代后返回false。

使用Java8,不需要任何方法

cars1.stream().filter(car1 -> cars2.contains(car1) ).count() > 0 
相关问题