1

私はTreeMapカスタムを持っていますComparator。Map の値の 1 つを更新したいのですが、 によってチェックされたフィールドComparatorが変更された場合、Map はその順序を維持しますか?

4

1 に答える 1

2

マップに格納されているキーは決して変更しないでください。または、少なくともequals()and hashCode()(HashMap の場合) またはcompareTo()/ compare()(SortedMap の場合) の実装に使用されるフィールドを変更しないでください。

これにより、マップが一貫性のない状態になり、その後は確実に機能することは期待できません。

もちろん、キーをマップから削除して変更し、再度挿入することもできます。

ただし、不変の型をマップのキーとして使用して、自分自身を撃たないようにすることをお勧めします。

于 2012-12-17T21:04:12.907 に答える