現在、バッグはコレクション契約に違反しています。多くのメソッドが現在のコレクションルールと競合しています。
「バッグは、オブジェクトがコレクションに表示される回数をカウントするコレクションです。を含むバッグがあるとします{a, a, b, c}
。呼び出しgetCount(Object)
はa
2を返し、呼び出しuniqueSet()
はを返し{a, b, c}
ます。
このインターフェースは収集契約に違反していることに注意してください。これらのメソッドの多くで指定されている動作は、Collectionで指定されている動作と同じではありません。非準拠のメソッドは、要約行に「(違反)」と明確にマークされています。このクラスの将来のバージョンでは、Collectionと同じ動作が指定されますが、残念ながら、このバージョンとの下位互換性が失われます。」
boolean add(java.lang.Object o)
(Violation) Add the given object to the bag and keep a count.
boolean removeAll(java.util.Collection c)
(Violation) Remove all elements represented in the given collection, respecting cardinality.
詳細については、リンクを参照してください:こちら