メル:
だから、私は(対応するgetterとsetterで、もちろん)それ内部HashMapを持つオブジェクトを、持っています。
public class ObjA {
private HashMap<String, Boolean> mymap;
...
}
その後、私はそれらのオブジェクト(および対応するゲッター/セッター)のリストを別のクラスを持っています:
public class ObjB {
private List<ObjA> list;
...
}
次に、第3のクラスは、CheckerClass
どのように多くチェックする必要があるObjA
内部リストでObjB
同じマップ(各キーのためにこの手段同じキーと同じ値)を持っています。
私の最初の考えはだった:ループlist
、およびそれぞれのObjA
パースへのマップString
。上のすべてのparsingsを収集Collection
して、重複を数えます。しかし、私はより多くのメモリを効率的に、そしてより多くのエレガントな何かをしたい:あなたが知っている、読みやすいです。そして、私はそれを取得するかどうかはわかりません。
スプリンター:
ここではそれぞれのユニークなマップの数を作成する方法があります:
list.stream().collect(Collectors.groupingBy(ObjA::getMyMap, Collectors.counting());
この作品のためには、Map.equals
正確に何をしたいん:チェックキーセットが同じ値に同じとマップされている場合。
それでは、各ユニークなマップのためにあなたはそれがリストに表示された回数を見つけることができます。あなたが特にありますどのように多くの重複を知りたい場合は、その後、使用し.values().stream().filter(c -> c > 1).count()
た地図上。