それらをSortedCollectionにソートする必要があると言われましたが、セット要素は比較できません(ソートに使用する方法がわからないID比較のみ)。
set1 = set2 のようにそれらを比較するのは安全ですか、それとも並べ替える必要がありますか (ID の方法は?)。
次のようなソートブロックについて考えていました。pre OID < succ OID]、うまくいきますか?
それらをSortedCollectionにソートする必要があると言われましたが、セット要素は比較できません(ソートに使用する方法がわからないID比較のみ)。
set1 = set2 のようにそれらを比較するのは安全ですか、それとも並べ替える必要がありますか (ID の方法は?)。
次のようなソートブロックについて考えていました。pre OID < succ OID]、うまくいきますか?
どうですか
(set1 size = set2 size) and: [set1 includesAllOf: set2]
Smalltalk の実装によっては、 も使用できます=
。たとえば、Squeak では次のように実装されています。
= aSet
...
self size = aSet size ifFalse: [^ false].
self do: [:each | (aSet includes: each) ifFalse: [^ false]].
^ true
2つのセットを比較したい場合は、を安全に使用できますset1 = set2
。セットの要素は、等式を使用して比較されます。等しいオブジェクトが含まれている場合、2つのセットは等しくなります。
それらを並べ替えても、同等性の比較には意味がありません。
Set equalityは(大まかに)次のように実装されていることに注意してください。
->それらは同じサイズであり、set1のすべての要素がset2にあるため、それらは等しくなければなりません。