假设我有两个列表:
List<String>products = new ArrayList<String>();
products.add("computer");
products.add("phone");
products.add("mouse");
products.add("keyboard");
List<String>cart = new ArrayList<String>();
cart.add("phone");
cart.add("monitor");
我需要找出购物车列表中有多少商品存在于产品列表中。对于上面的列表,答案是 1(因为电话在产品和购物车中)。如果购物车列表是:
List<String>cart = new ArrayList<String>();
cart.add("desk");
cart.add("chair");
结果将为 0。如果购物车包含计算机、鼠标、桌子、椅子,则结果将为 2(用于计算机和鼠标)。
Apache Commons Collections或Google Collections API中有什么东西吗?我已经查看了它们并查看了获取行李数量的方法,但不是来自另一个列表,尽管我可能遗漏了一些东西。现在,我能想到的唯一方法是遍历购物车项目并查看产品是否包含单个项目并保持计数。我不能使用containsAll因为我需要计数(不是布尔值),如果购物车中的所有项目都不存在于产品列表中(这可能会发生),那将失败。
如果这很重要,我正在使用 Java 1.6。