2つのリストがあるとします。
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 CommonsCollectionsまたはGoogleCollectionsAPIに何かありますか?私はそれらを調べて、バッグの数を取得する方法を見つけましたが、何かが足りない可能性はありますが、別のリストからは取得していません。今のところ、私が考えることができる唯一の方法は、カートのアイテムを繰り返し処理し、製品に個々のアイテムが含まれているかどうかを確認し、カウントを維持することです。カウント(ブール値ではない)が必要なため、 containsAllを使用できません。カート内のすべてのアイテムが製品リストに存在しない場合は失敗します(これは発生する可能性があります)。
それが重要な場合、私はJava1.6を使用しています。