假设我有两个 ArrayList,其中都有一些对象:
Object a = new Object();
Object b = new Object();
Object c = new Object();
Object d = new Object();
ArrayList list1 = new ArrayList();
list1.add(a);
list1.add(a);
list1.add(a);
list1.add(b);
list1.add(b);
list1.add(c);
ArrayList list2 = new ArrayList();
list2.add(a);
list2.add(a);
list2.add(b);
list2.add(c);
list2.add(c);
list2.add(d);
ArrayList output = retainAllButRegardingDoubles(list1, list2);
现在我想找到与另一个数组中的元素相交的元素,但关于双精度数。对于'关于双打',我的意思是:如果列表 1 包含三倍的对象 A,而列表 2 包含两倍的对象 A,那么返回的数组将包含两倍的对象 A,因为对象 A 在两个数组中至少出现两次。
所以我希望输出列表如下:
ArrayList {
a,
a,
b,
c
}
“a”在两个列表中出现两次,“b”一次,“c”一次。
有没有图书馆可以做到这一点,还是我必须自己写?如果是,如何?