如何计算两个数组列表之间的差异?

2022-08-31 12:25:28

我有两个 ArrayList。

数组列表 A 包含:

['2009-05-18','2009-05-19','2009-05-21']

数组列表 B 包含:

['2009-05-18','2009-05-18','2009-05-19','2009-05-19','2009-05-20','2009-05-21','2009-05-21','2009-05-22']

我必须比较 ArrayList A 和 ArrayList B。结果 ArrayList 应包含 ArrayList A 中不存在的列表。

数组列表结果应为:

['2009-05-20','2009-05-22']

如何比较?


答案 1

在 Java 中,可以使用集合接口的 removeAll 方法。

// Create a couple ArrayList objects and populate them
// with some delicious fruits.
Collection firstList = new ArrayList() {{
    add("apple");
    add("orange");
}};

Collection secondList = new ArrayList() {{
    add("apple");
    add("orange");
    add("banana");
    add("strawberry");
}};

// Show the "before" lists
System.out.println("First List: " + firstList);
System.out.println("Second List: " + secondList);

// Remove all elements in firstList from secondList
secondList.removeAll(firstList);

// Show the "after" list
System.out.println("Result: " + secondList);

上面的代码将生成以下输出:

First List: [apple, orange]
Second List: [apple, orange, banana, strawberry]
Result: [banana, strawberry]

答案 2

您已经有了正确的答案。如果你想在列表(集合)之间进行更复杂和有趣的操作,请使用apache commons集合CollectionUtils),它允许你进行共轭/析取,找到交集,检查一个集合是否是另一个集合的子集和其他好东西。


推荐