Junior — Middle
Объекттин Set коллекциясына туура кошулушу үчүн негизги критерийлер кандай?
sobes.tech AI
AIден жооп
Туура түрдө объектти Set топтомуна кошуу үчүн (мисалы, iOSтогу NSSet) объект төмөнкүлөргө тийиш:
-
-hashжана-isEqual:методдорун туура жана туруктуу ишке ашыруу керек.-hashбирдей деп эсептелген объекттер үчүн бирдей маанини кайтаруусу керек.-isEqual:объекттердин барабарлыгын так аныктоо керек.
-
Объект Set ичинде турганда, хешти жана салыштыруу үчүн катышкан талааларда өзгөрбөшү керек. Болбосо, коллекциянын бүтүндүгү бузулат.
Мисалы, эгер сиз NSSet үчүн сактоо үчүн өз классыңызды түзсөңүз, бул методдорду кайра жазыңыз:
- (NSUInteger)hash {
return self.identifier.hash;
}
- (BOOL)isEqual:(id)object {
if (self == object) return YES;
if (![object isKindOfClass:[MyClass class]]) return NO;
return [self.identifier isEqual:((MyClass *)object).identifier];
}
Бул Set объекттердин уникалдуулугун туура аныктоосун камсыздайт.