public static void main(String[] args) {
List<String> listA = new ArrayList<>();
List<String> listB = new ArrayList<>();
listA.add("A");
listA.add("A");
listA.add("B");
listA.add("B");
listA.add("C");
listB.add("A");
listB.add("A");
listB.add("B");
//输出需要的结果是: B, C
}
1.工具类实现
Collection list = org.apache.commons.collections.CollectionUtils.subtract(listA, listB);
// 不会对原始集合listA,listB做修改;
//输出 list [B,C]
public static Collection subtract(Collection a, Collection b) {
ArrayList list = new ArrayList(a);
Iterator it = b.iterator();
while(it.hasNext()) {
list.remove(it.next());
}
return list;
}
2.java8流实现
直接采用remove删除的方式,修改原始集合
listB.stream().forEach(vo->listA.remove(vo));
System.out.println(JSONArray.toJSONString(listA));
//输出 list [B,C]